Python中如何正确读写文件?请教一个常见问题
请问下 为什么我没换行,下引号总是会自动换行,代码如下 with open("1.txt","r") as a: with open("2.txt", "a") as f: while True: line = a.readline() if line: name = "or"+" "+"nickname =" + """ + line + """ print(name) break f.write(name) else: break f.close() a.close()
输出的结果如下 下引号总是会自动换行, or nickname ="��ѩ�� "
Python中如何正确读写文件?请教一个常见问题
2 回复
在Python里读写文件,最稳妥的方式是用 with 语句。它能自动处理文件的打开和关闭,即使中间出错了文件也能正确关闭,避免资源泄露。
读文件:
# 读取整个文件内容
with open('example.txt', 'r', encoding='utf-8') as f:
content = f.read()
print(content)
# 逐行读取
with open('example.txt', 'r', encoding='utf-8') as f:
for line in f:
print(line.strip()) # strip()去掉换行符
# 读取所有行到列表
with open('example.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
写文件:
# 覆盖写入
with open('output.txt', 'w', encoding='utf-8') as f:
f.write('Hello, World!\n')
f.write('这是第二行\n')
# 追加写入
with open('output.txt', 'a', encoding='utf-8') as f:
f.write('这是追加的内容\n')
关键点:
open()的第一个参数是文件路径- 第二个参数是模式:
'r':读取(默认)'w':写入(会覆盖原有内容)'a':追加'r+':读写
- 一定要指定
encoding参数,特别是处理中文时,用'utf-8'最通用 - 用
with语句确保文件正确关闭
常见坑:
- 用
'w'模式打开已存在的文件会清空原内容 - 文件路径要用正确斜杠(Windows用
\\或/) - 处理完文件对象后不要手动调用
close(),with语句会处理
二进制文件:
处理图片、视频等二进制文件时,用 'rb' 或 'wb' 模式:
# 复制图片
with open('input.jpg', 'rb') as src, open('copy.jpg', 'wb') as dst:
dst.write(src.read())
记住:用 with 语句 + 指定编码,能解决大部分文件读写问题。
总结:总是使用 with 语句来管理文件。
print 默认换行的 想不换行的话 这样 print(‘ your str ’,end=‘’)就可以了

