公司动态

python的文件操作

📅 2026/7/22 23:40:39
python的文件操作
使用场景1. 需要读取文本文件- 一般来说是txt后缀的但是有没有后缀都可以- 可以直接用文本编辑器打开查看内容2. 需要读取二进制文件- 需要特定的解析工具比如视频音频pdf等等- 用文本编辑器打开是乱码文本文件操作的 3 中模式读mode r、写mode w、追加mode a读# 文件/流的操作1打开连上2增删改查3关闭断开 f open(file./test.txt, moder, encodingutf8) # 读取内容 f.read() # 关闭文件 f.close()# 文件/流的操作1打开连上2查3关闭断开 with open(test.txt, r, encodingutf8) as f: for line in f: real_line line.strip() if real_line: print(real_line)写# 文件/流的操作1打开连上2写3关闭断开 with open(test.txt, w, encodingutf8) as f: f.write(第一行内容\n) f.write(第二行内容\n)追加# 文件/流的操作1打开连上2追加3关闭断开 with open(test.txt, a, encodingutf8) as f: f.write(追加一行\n)读一个文件写入另外一个新文件# 读test.txt过滤空行写入out.txt with open(test.txt, r, encodingutf8) as fr, open(out.txt, w, encodingutf8) as fw: for line in fr: s line.strip() if s: print(s) fw.write(s \n)二进制文件操作的4 中模式rb只读二进制wb覆盖写二进制清空原有ab追加二进制尾部添加rb/rb可读可写二进制修改、插入、删除必备不清空文件二进制读写全部操作字节串 bytes不能直接 str字符串要encode()字节要decode()。覆盖写二进制清空原有# 写入字节encode字符串转bytes data 测试二进制内容\n第二行.encode(utf-8) with open(data.bin, wb) as f: f.write(data)只读二进制with open(data.bin, rb) as f: # 一次性读取全部字节 content f.read() print(content) text content.decode(utf-8) print(text)追加二进制尾部添加add_data \n追加的字节.encode(utf-8) with open(data.bin, ab) as f: f.write(add_data)可读可写二进制覆盖修改指定位置内容二进制文件一般只能覆盖替换指定内容修改或删除中间内容必须全部读出修改然后清空文件写入关键文件指针函数f.seek(offset, whence)移动文件指针whence0从头偏移whence1从当前位置偏移rb 下可用whence2从文件末尾偏移f.tell()获取当前指针位置# 覆盖修改指定位置内容 # data.bin 内容babc123xyz # 把 123 改成 456偏移 3 开始覆盖 3 字节 with open(data.bin, rb) as f: f.seek(3, 0) # 指针移到第3个字节 f.write(b456)大文件分块读取CHUNK_SIZE 1024 with open(large.bin, rb) as f: while chunk : f.read(CHUNK_SIZE): # 逐块处理字节 pass