初学者python笔记(文件的操作)

当Python学到一定程度的时候,就要跟文件打交道了。到以后自己的写程序,对文件的操作是非常频繁的,因此学会对文件的操作也是Python学习的一项基础任务。

打开文件与读取文件

  1. 基本的打开操作
f = open('test.txt','r'encoding='gbk') #用只读形式打开文件,r是只写,a是追加
#windows系统默认是gbk编码,但如果你的文件是utf-8,则一定要设置成utf-8,否则会打不开
data = f.read()  #读取文件内容,并赋值给data变量
print(data)
f.close()  
#打开后要记得关闭文件,否则内容不会瞬时保存,而且文件多了会影响程序的执行

代码片的第一行,一般将文件打开后都用一个变量来接收,便于在Python的IDLE中操作,本篇文章默认都是用变量 f 来接收打开后的文件。

  1. 另外一些读取函数
    f.readable(): 判断文件是否可读,返回布尔值
    f.readline():只读一行
    print(f.readlin(),end='') #其中,end=’'表示去掉换行

文件的写

  1. 只写的方式打开
f = open('test.txt','w',encoding='gbk')  #用只写的方式打开文件
data = f.read()
print(data)
f.close()
#只写方式读取文件,文件存在,会把文件清空;文件不存在,会新建一个文件
  1. 内容的几种写入
f = open('test.txt','a',encoding='gbk')
f.write('窝拆\n')  #\n表示换行
f.writelines('写到最后了'])  #writelines()是写一个列表进去,但列表中元素必须字符串类型
f.close()
  1. 内容的追加
f = open('test.txt','a',encoding='gbk')
f.write('写到文件最后了')  #以追加的方式写入,会默认追加到最后
f.close()

with open方式打开文件

  1. 打开文件后每次都要手动关闭感觉很麻烦,那就用with open,就不用手动关闭文件了
with open('test.txt','w',encoding='gbk') as f:
    f.write('不需要手动关闭文件了')
  1. 源文件中读到一个文件后写到另外一个文件
with open('test.txt','w',encoding='gbk') as fone:
    with open('test2.txt','r',encoding='gbk') as ftwo:  #将test2作为源文件
        data = ftwo.read()
        fone.write(data)
  1. 慎用w和w+(因为会把源文件清空)
    r+, w+, a+, x+都表示可读,可写
    rb是以二进制的方式读,读出来的内容的一长串字节形式的字符,wb是以二进制的方式写

文件打开后的编码问题

以二进制形式打开文件对文件的处理比较方便,但有很多需要注意的编码问题

  1. 将二进制解码
f = open('test.txt','rb')  #rb,rw的形式不能指定编码
data = f.read()  #读出来的内容将会是一串二进制字节
print(data)
print(data.decode('gbk'))  #用decode()将二进制字节解码后就可以看到正常的内容了
  1. bytes()编码+解码
f = open('test.txt','wb')  #rb,rw的形式不能指定编码
#f.write()  #wb无法写入字符串,只能写入二进制格式
data1 = bytes('这是用bytes()转化成二进制',encoding='gbk')  #bytes函数必须指定编码
f.write(data)
f.close()
  1. encode()编码+解码
f = open('test.txt','wb')  #rb,rw的形式不能指定编码
data = '这是用encode()转化成二进制'.encode('utf-8')
f.write(data)
f.close()
  1. 二进制处理文件的好处
    计算机中所有的文件都是二进制存储的,所以不管是图片还是视频都可以用二进制的方式在Python中打开,然后进行处理
    f.closed(): 判断文件是否关闭
    f.encoding(): 查看文件打开时的编码

文件操作的readlines()和truncate()

  1. readlines()
f = open('test.txt','r+',encoding='utf-8',newline='')
#多了一个newline=''表示读取文件中真正的换行符号
data = f.readlines()  #读取完整内容,包括换行符
print(data)
  1. truncate()
f = open('test.txt','r+',encoding='utf-8')
f.truncate(2)
#截取前10个字节的内容,前提是可写的方式打开
#而r+,w+,a+,x+都表示可读,并且可写(慎用w+)
发布了17 篇原创文章 · 获赞 32 · 访问量 1990

猜你喜欢

转载自blog.csdn.net/Viewinfinitely/article/details/104644105