Python中open函数的使用方法与常见问题
存进 txt 的数据都是 unicode 格式,然后我 f = open("taobao.txt", "a", encoding="utf-8") 为啥这行显示错误,但是删了 encoding="utf-8"显示正确了......
Python中open函数的使用方法与常见问题
8 回复
Python的open()函数是文件操作的基础,但确实有些细节容易踩坑。直接看代码:
# 基本读写操作
# 1. 读取文件(默认模式)
with open('example.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)
# 2. 写入文件(覆盖模式)
with open('output.txt', 'w', encoding='utf-8') as f:
f.write('Hello World\n')
f.write('第二行内容')
# 3. 追加模式
with open('output.txt', 'a', encoding='utf-8') as f:
f.write('\n这是追加的内容')
# 4. 二进制模式(处理图片等)
with open('image.jpg', 'rb') as f:
binary_data = f.read()
# 5. 逐行读取大文件
with open('large_file.txt', 'r', encoding='utf-8') as f:
for line in f: # 内存友好
print(line.strip())
常见问题及解决:
- 编码问题 - 总是明确指定
encoding参数,特别是处理中文时用utf-8 - 文件路径 - 相对路径基于当前工作目录,可用
os.path处理路径 - 文件不存在 -
'r'模式文件不存在会报错,'w'模式会创建新文件 - 忘记关闭文件 - 一定要用
with语句,自动处理关闭 - 换行符差异 - Windows和Unix换行符不同,可用
newline=''参数控制
模式速查:
'r'- 只读(默认)'w'- 写入(覆盖)'a'- 追加'b'- 二进制模式'r+'- 读写(文件必须存在)'w+'- 读写(创建新文件)
记住用with语句和指定编码就能避免大部分问题。
不是编码,而是格式问题…直接显示 unexpected arguments ( s )了…我记得以前这么写是可以的
你以前写的是 codecs.open(“taobao.txt”, “a”, encoding=“utf-8”)???
以前好像是 python3 版本 这次是 python2 版本
2
3
这个函数的签名不同,3 有很大的变化
目测如 3 楼所说,楼主把 codecs 模块的 open 函数和内置 open 函数用错了
至少贴个 traceback 啊。。。。。。
Python 2:
from codecs import open

