Python基础与拾遗6:Python中的文件

Python基础与拾遗6:Python中的文件


本篇博文,主要总结Python中的文件及相关操作,下面开始干货。
为了更好地展示用例,笔者在D盘目录下初始化一个text.txt的文本文档,内容如下:

aaaaaa
bbbbbb
cccccc
dddddd
eeeeee
ffffff
gggggg

文件相关定义

  1. 内置函数open创建一个Python文件对象,作为计算机上的一个文件链接。
f = open('D:/test.txt')
type(f) # <class '_io.TextIOWrapper'>
  1. r表示,w表示==(覆盖)写==,a表示在尾部追加
  2. 2中三个字符串加上b,进行二进制数据处理
  3. 2中三个字符串加上“+”意味着同时为输入和输出打开文件
  4. 如果文件路径不存在,是不能够创建输入文件的(如果在open函数中传入’r’或’r+‘会报错),可以创建输出文件(如果在open函数中传入’w’,‘w+’,‘a’,'a+'会直接创建文件)。
f = open('D:/new.txt', 'r') # FileNotFoundError: [Errno 2] No such file or directory: 'D:/new.txt'
  1. 从文件中读取内容,是字符串,不是对象。
f = open('D:/test.txt', 'r')
s = f.readline()
type(s) # <class 'str'>

文件相关操作

操作解释
output = open(r’D:\test.txt’, ‘w’)创建输出文件
input = open(‘D:/test.txt’, ‘r’)创建输入文件
input = open(‘D:\test.txt’)同上,即默认’r’
aString = input.read()把整个文件读入单一字符串
aString = input.read(N)读取之后的N个字节到一个字符串
aString = input.readline()读取下一行到一个字符串
aString = input.readlines()读取整个文件到字符串列表
output.write(aString)写入字节字符串到文件
output.writelines(aList)把列表内所有字符串写入文件
output.close()手动关闭
output.flush()把输出缓冲区刷到硬盘中,不关闭文件
anyFile.seek(N)修改文件位置到偏移量N处
for line in open(‘D:/test.txt’): use line文件迭代器一行一行读取
open(‘D:/test.txt’, encoding=‘latin-1’)Python 3.0及之后版本中的Unicode文本文件
open(‘f.bin’, ‘rb’)Python 3.0及之后版本中二进制byte文件
  1. rstrip()方法去掉行尾的换行符,比较常用。
f = open('D:/test.txt', 'r')
s = f.readline() # 'aaaaaa\n'
s.rstrip() # 'aaaaaa'
  1. 读取文件时,光标会随着上一次读取的内容移动。
f = open('D:/test.txt', 'r')
s = f.read(10) # 'aaaaaa\nbbb'
s = f.read(10) # 'bbb\ncccccc'
  1. 常用eval函数,将读取出的字符串当成可执行代码
s = '[1, 2, 3]'
l = eval(s) # [1, 2, 3]
  1. 可以使用内置的pickle模块存储Python的原生对象,比如字典(当然也可以采用json等多种常用模块存储)。注意,二进制模式打开用来存储pickle化的对象文件
import pickle
D = {'a':1, 'b':2}
F = open('D:/dic.pkl', 'wb')
pickle.dump(D, F)
F.close()
F = open('D:/dic.pkl','rb')
s = pickle.load(F)
print(s) # {'a': 1, 'b': 2}
type(s) # <class 'dict'>

以上,欢迎各位读者朋友提出意见或建议。

欢迎阅读笔者后续博客,各位读者朋友的支持与鼓励是我最大的动力!

written by jiong
满纸荒唐言,一把辛酸泪。
都云作者痴,谁解其中味?

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值