python 基础知识6-文件操作

Posted 寂*凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 基础知识6-文件操作相关的知识,希望对你有一定的参考价值。

1、只读文件

#以文本打开文件‘r‘
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r,encoding=utf-8)
content = f.read()
print(content)
f.close()#中国是个伟大的国家。

#以二进制形式打开文件‘rb‘
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=rb)
content = f.read()
print(content)
f.close()#b‘xe4xb8xadxe5x9bxbdxe6x98xafxe4xb8xaaxe4xbcx9fxe5xa4xa7xe7x9ax84xe5x9bxbdxe5xaexb6xe3x80x82‘


‘‘‘
‘C:\Users\Administrator\Desktop\Python\f.txt‘:路径(不能用‘‘!可以用‘\‘或‘/‘)
mode:定义操作方式.
encoding:声明,此次打开文件使用什么编码本。一般来说:你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8(有些使用的是gbk).
f.read():操作文件,比如读文件,给文件写内容,等等,都必须通过文件句柄进行操作.
f.close():关闭文件.
‘‘‘

2、只写文件

 

#对于w:没有此文件就会创建文件。
f = open(C:\Users\Administrator\Desktop\Python\t.txt,mode = w,encoding= utf-8)
f.write(‘寂*凉‘)
f.close()#寂*凉


#若有此文件,先将源文件全部清除,再写。
f = open(C:\Users\Administrator\Desktop\Python\t.txt,mode = w,encoding= utf-8)
f.write(‘5月9号‘)
f.close()#5月9号

#wb:以二进制写入,需用encode()转换
f = open(‘C:\Users\Administrator\Desktop\Python\t.txt‘,mode = ‘wb‘)
f.write(‘5月9号‘.encode(‘utf-8‘))
f.close()

#‘a‘:追加写
f = open(‘C:\Users\Administrator\Desktop\Python\t.txt‘,mode = ‘a‘,encoding= ‘utf-8‘)
f.write(‘21度‘)
f.close()#5月9号21度

#‘ab‘:以二进制追加写
f = open(‘C:\Users\Administrator\Desktop\Python\t.txt‘,mode = ‘ab‘)
f.write(‘适中‘.encode(‘utf-8‘))
f.close()#5月9号21度适中


 

 3、读写

#‘r+‘读写
f = open(C:\Users\Administrator\Desktop\Python\t.txt,mode = r+,encoding =utf-8)
print(f.read())#5月9号21度适中
f.write(5月9日)
f.close()

注意:如果在读写模式下,先写后读,那么文件就会出问题,因为默认光标是在文件的最开始,要是先写,则写入的内容会讲原内容覆盖掉,直到覆盖到写完的内容,然后在后面开始读取。

 

 4、光标控制:seek

  seek(n)光标移动到n位置,注意: 移动单位是byte,所有如果是utf-8的中文部分要是3的倍数
移动到开头:seek(0)
移动到结尾:seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8)
f.seek(0) # 光标移动到开头
content = f.read()# 读取内容, 此时光标移动到结尾
print(content)#中国是个伟大的国家。
f.seek(0) # 再次将光标移动到开头
f.seek(0,2) # 将光标移动到结尾
content1 = f.read()# 读取内容. 什么都没有
print(content1)#   
f.seek(0)
f.write(确实)
content2 = f.read()# 写入信息. 此时光标在6 中文2 * 3个 = 6
print(content2)#是个伟大的国家。
f.close()

 5、功能详解

#(确实是个伟大的国家。)
#read(n):读出的字符数
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8)
content = f.read(3)
print(content)#确实是
f.close()


#seek(n):按照字节定光标的位置
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8)#(确实是个伟大的国家。)
f.seek(3)
content = f.read()
print(content)#实是个伟大的国家。
f.close()


#tell():获取当前光标的位置
# f = open(‘C:\Users\Administrator\Desktop\Python\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘)
f.seek(3)
print(f.tell())#3
f.close()

f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=a+,encoding=utf-8)
f.write(真的)
count = f.tell()
f.seek(count-6)
print(f.read())#真的
f.close()


#readline:一行一行读
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8)
print(f.readline())
f.close()


#readlines:每一行当成列表中的一个元素,添加到list中
f = open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8)
count = f.readlines()
for i in count:
    print(i.strip())
f.close()

 

6、打开文件另一种方式with open

优点:(1):用with上下文管理这种方式,它会自动关闭文件句柄。

(2):一个with 语句可以操作多个文件,产生多个文件句柄。

with open(C:\Users\Administrator\Desktop\Python\f.txt,mode=r+,encoding=utf-8) as f,        open(C:\Users\Administrator\Desktop\Python\t.txt,mode=r+,encoding=utf-8) as f1:
    print(f.read())
    print(f1.read())

 

以上是关于python 基础知识6-文件操作的主要内容,如果未能解决你的问题,请参考以下文章

Python基础(二十二):文件操作

Python基础(二十二):文件操作

6.1Python文件的操作

android小知识点代码片段

VSCode自定义代码片段6——CSS选择器

[未解决问题记录]python asyncio+aiohttp出现Exception ignored:RuntimeError('Event loop is closed')(代码片段