龙空技术网

python:5分钟,教你使用内置函数open来操作文件

最爱脆啵啵 1115

前言:

如今各位老铁们对“pythonopen中文文件”都比较讲究,小伙伴们都想要知道一些“pythonopen中文文件”的相关文章。那么小编同时在网上收集了一些对于“pythonopen中文文件””的相关内容,希望咱们能喜欢,大家快快来了解一下吧!

使用内置函数open来操作文件有三步:打开文件,操作文件,关闭文件。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

3.1. file如果只写文件名,比如'file1.txt',则默认是当前路径,如果当前路径没有这个名字的文件,则报错,如果是其他目录的文件,则需要加上文件路径。

3.2. mode有4种模式:'r'表示只读模式,'w'代表只写入模式(如果文件存在,则覆盖掉,不存在则创建),'x'表示新创建一个文件,并进入写入模式(如果文件存在,则报错),'a'表示追加写入模式,所有写入内容都在文件末尾。打开file有三种模式,'b'代表二进制模式,'t'代表文本模式,'+'表示读写模式。默认文件打开是'rt'模式。

3.3. encoding如果没传入,则默认是平台当前的编码方式。只在文本模式中需要编码。二进制模式不需要encoding。

3.4. buttering,指缓冲,默认是-1,代表

读时是按照指针的顺序,从前往后读,写时,都是写到最后,指针也到了最后。

help(open)f1 = open('hello.txt', 'w', encoding='utf-8')f1.write('hello,lanxing') #将字符串写入文件。f1.close() #关闭文件f2 = open('hello.txt', 'rb')data = f2.read() #read表示读取多少个字符,如果不加参数,则默认读取全部内容。print(data)data2 = str(data,encoding='utf-8')print(data2)f2.close()f3 = open('test1.txt', 'wb')# 以二进制模式进行写入操作,write的参数必须是字节形式,所以用bytes将字符串转换成字节。f3.write(bytes('中国人', encoding='utf-8'))f3.close()f4 = open('test1.txt', 'rb+')data4 = f4.read(3) #只读取3个字节print(data4)str_data4 = str(data4,encoding='utf-8')print(str_data4)f4.close()# 一,以下是读写模式,先读再写。f5 = open('test1.txt', 'r+', encoding='utf-8')# tell告诉当前指针(或叫光标)在哪个位置,一个字节就是一个指针位print(f5.tell()) # telldata5 = f5.read(1) # 读取1个字符,utf-8编码中,一个中文字符是3个字节。print(f5.tell()) # 所以现在是3个指针位print(data5)data6 = f5.read(1) # 再读1个字符位。print(data6)print(f5.tell()) # 现在指针在第6个字节位处了f5.seek(0) # 将指针重新调整到起始位置。f5.write('日本人') # 写入操作,会在末尾追加,指针调整到最后。f5.close()# 二,以下是写读模式,先写再读,即先清空再读。写入的同时,指针就在最后了。f6 = open('test1.txt', 'w+', encoding='utf-8')data6 = f6.read()print(data6) #空值,因为先写,已经清空整个文件了。f6.write('中国人')print(f6.tell()) #是9,因为3个汉字是9个字节。data7 = f6.read() #还是空值,因为现在指针在9,9后面没有数据了。f6.seek(0) #将指针调到到开始。data8 = f6.read()print(data8)f6.close()# 三,a+模式,打开时,指针已经在最后了。

打开文件一定要记得关闭文件,最好使用with来打开文件,with打开文件会自动关闭文件。

with open('test1.txt','w+',encoding='utf-8') as f: f.write('中国人')with open('test1.txt','r+',encoding='utf-8') as f1, open('test2.txt','w+',encoding='utf-8') as f2:#with可以同时打开多个文件。 for line in f1: #将f1的每一行都写入到f2文件中去。 f2.write(line)

文件的基本操作还有:

flush(), 即时刷新,可以在文件未关闭之前看到文件更新内容,不接参数。

readline(),读取当前指针处的一行内容。

readlines(n),读取当前指针处的n个字符,如果n不写,则默认全读完,如果n小于当前行的字符长度,则读取当前行内容,包括换行符\n,如果n大于当前行的字符长度,则一直到第从当前指针处的第n个字符所在的行,每一行的内容包括换行符作为一个列表的元素,最终返回该列表。

close(),关闭文件

seek(n),调整指针位置

tell(),返回当前指针位置。

truncate(),截取当前指针处之前的字节内容。文件关闭时,就只有截取的内容了。

read(n),读取从当前指针处的多少个字符。返回的是字符串。

write(),写入字符串或字节。

觉得文章还不错的话不妨收藏起来慢慢看,有任何建议或看法欢迎大家在评论区分享讨论!

我是一名python开发工程师,整理了一套python的学习资料,如果你想提升自己,对编程感兴趣,关注我并在后台私信小编:“08”即可免费领取资料!希望对你能有所帮助!

标签: #pythonopen中文文件 #aspnetopenfile #python with open函数 #使用open函数打开文件默认打开方式