Python 文件操作
Posted cyx-12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 文件操作相关的知识,希望对你有一定的参考价值。
1. open() file.close()
# 关闭后的文件不能再进行读写操作,否则会触发ValueError fo = open(‘a.txt‘, ‘r‘) print(‘打开a.txt的文件‘) fo.close()
2. flush()
# flush()用来刷新缓冲区,将缓冲区的数据立刻写入文件 # 同时清空缓冲区,不需要是被动的等待输出缓冲区写入 # 一般情况,文件关闭后会自动刷新缓冲区,但有时需要在关闭前刷新它,这时就需要使用flush()方法 fo =open(‘a.txt‘, ‘wb‘) print(‘打开a.txt的文件‘) fo.flush() fo.close()
3. 打开文件的模式
①. 只读模式 r (默认)
②. 只写模式 w (不可读,不存在则创建,存在则覆盖)
③. 追加模式 a (可读,不存在则创建,存在则只追加内容)
④. ‘+‘ 表示可同时读写某个文件:
r+ 可读写文件(可读、可写、可追加)
w+ 写读
a+ 追加
⑤. ‘u’表示在读取时,可将 自动转换成 (与 r 或者 r+ 模式同时使用)
因为Windows系统的换行符为 ,Linux系统的换行符为 , 加上u则能自动把 转换成
ru
r+u
⑥. ‘b’ 表示处理二进制文件
rb
wb
ab
4.
# # 读取文件内容(可指定每次读取字符数) # with open(‘a.txt‘, ‘r+‘, encoding=‘utf-8‘) as f: # ret = f.read(8) # print(ret)
5.
# 读取数据(可指定读取字符数),存为list显示 # f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) # ret = f.readlines() # print(ret) # f.close()
6.
# # 读取一行数据 # f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) # ret = f.readline() # print(ret) # f.close()
7.
# 判断文件是否可读(不可读则报错“No such file or directory:”) f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) ret = f.readable() print(ret) f.close()
8.
# 获取指针位置 f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) # 先读取8个字符 ret = f.read(8) # 查看当前指针位置 print(‘pointer position: %s‘ %f.tell()) print(ret) # 重置指针到起始位 f.seek(0) # 查看指针当前位置 print(‘pointer position: %s‘ %f.tell()) f.close()
9.
# 指定文件中指针位置 f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) # 先读取8个字符 ret = f.read(8) print(ret) # 重置指针到起始位 f.seek(0) # 在重新读取8个字符 ret = f.read(8) print(ret) f.close()
10.
# 截取文件数据,仅保留指定之前数据(指定字节数) f = open(‘b.txt‘, ‘r+‘, encoding=‘utf-8‘) # 文件只保留前8个字节数据,文件后面的数据全部删除 f.truncate(8) ret = f.read() print(ret) f.close()
11. fileno()
# fileno()返回一个整型的文件描述(file desccriotor FD 整型) # 可用于底层操作系统的I/O操作 fo = open(‘b.txt‘, ‘wb‘) print(‘文件名为:‘,fo.name) fid = fo.fileno() print(‘文件描述为:‘,fid) fo.close()
12. isatty()
# isatty()检测文件是否连接到一个终端设备 # 如果是返回True,否则返回False fo = open(‘b.txt‘, ‘wb‘) print(‘文件名为:‘,fo.name) ret = fo.isatty() print(‘返回值:‘,ret) fo.close()
13. next()
# Python3中的file对象不支持next()方法 # Python3的内置函数next()通过迭代器调用__next()__方法返回下一项 # 在循环中,next()方法会在循环中调用,该方法返回文件的下一行 # 如果到达结尾(EOF)则触发Stopiteration fo = open(‘b.txt‘, ‘r‘) for index in range(5): line = next(fo) print(‘第%d行 - %s‘%(index, line))
以上是关于Python 文件操作的主要内容,如果未能解决你的问题,请参考以下文章