Python 文件

参考书目Python for Data Analysis, 2nd Edition
章节第 3 章 Python数据结构、函数和文件

文件

文件的打开与关闭

使用with语句打开文件,在退出代码时,文件会被自动关闭

In [39]: path = 'C:/Users/cjwdl/Desktop/test.txt'

In [40]: with open(path) as f:
    ...:     lines = [x.rstrip() for x in f]

输入open(path)默认以只读模式打开文件,输入open(path, ‘w’)是以只写模式打开文件,此时会创建一个同名的新文件,并覆盖掉原来的文件,所有的读/写模式如下表所示:

模式说明
r只读模式
w只写模式。创建新文件,覆盖原文件
a添加到现有文件,如果文件不存在则创建新文件
r+读写模式
b以二进制格式打开文件,即‘rb’或‘wb’

文件的常用方法

对于可读文件,常用的方法是read、seek和tell。

read方法

read会从文件返回字符,字符的内容是由编码格式(如UTF-8)决定的,如果以二进制模式打开文件就是原始字符:

In [44]: f = open(path)
In [45]: f.read(10)  # read(n),n是一个整数,指的是读取n个字节
Out[45]: 'Youth is n'

In [46]: f2 = open(path, 'rb')  # ‘rb’以二进制模式打开
In [47]: f2.read(10)
Out[47]: b'Youth is n'
tell方法

read(n) 读取文件时,可以想象有一个指针,从指针的位置开始读取n个字节。读取完毕之后指针的位置会后移,移动的距离是n个字节。tell()函数可以给出当前指针所在的位置

In [48]: f.tell()
Out[48]: 10  # 当前指针位于第10个字节

In [49]: f2.tell()
Out[49]: 10
seek方法

seek()函数将指针的位置更改为指定的字节:

# seek()函数有三种形式:
1) f.seek(p, 0)或者seek(p) 
# 将文件的读取指针移动到第p个字节处(0表示文件头),表示绝对位置。seek(0)表示文件开头
2) f.seek(p, 1)
# 表示在当前位置的基础上,将指针向后移动p个字节,表示相对位置
3) f.seek(p, 2)
# 表示在文件尾的基础上,将指针移动p个字节,表示相对位置。seek(0, 2)表示将指针移动到文件尾。
close方法

close()方法关闭文件

In [50]: f.close()

In [52]: f2.close()

向文件写入数据

向文件写入,可以使用文件的write或writelines方法。

with open('tmp.txt', 'w') as file:
	file.write(str)  # write()函数的参数是一个字符串
	file.writelines(list)  # writelines()函数的参数是一个序列,会自动迭代该序列写入数据,但是写入时并不会自动换行,如需换行需要手动加入换行符(\n)

下表是一些常见的文件方法:

方法说明
read([size])以字符串的格式返回数据,可选参数size用于说明读取的字节数
readlines([size])将文件返回为行列表,可选参数size
write(str)将字符串写入文件
close()关闭文件
flush()清空内部I/O缓存,并将数据强行写回磁盘
seek(pos)移动到指定的文件位置
tell()以整数形式返回当前指针的位置
closed如果文件已关闭,则返回True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值