file.write()无法写入文件:novo_produto()函数失效求助
问题排查:produtos.txt无法写入但supermercados.txt正常
可能的原因及解决步骤
文件权限问题
即便在同一目录,produtos.txt可能被设为只读,或是当前程序没有写入权限。- 右键文件查看属性,取消只读选项后重试。
- 若用Linux/macOS,在终端执行
chmod +w produtos.txt赋予写入权限。
文件被其他程序占用
produtos.txt可能被记事本、编辑器等软件打开并锁定,导致Python无法写入。- 关闭所有打开该文件的程序,重新运行代码。
函数未被正确调用
确认novo_produto()确实被执行了,有时候可能漏写了调用语句。- 检查调用代码,确保存在
novo_produto(),比如:novo_produto() # 确认这行代码存在且执行
- 检查调用代码,确保存在
缓存未刷新(概率较低)
虽然with语句会自动关闭文件刷新缓存,但可以手动强制刷新验证:def novo_produto(): with open('produtos.txt', 'a') as file: content = input('\nQue produto deseja introduzir?\nProduto: ') + '\n' file.write(content) file.flush()实际运行目录不符
有时候VSCode的运行目录和你看到的代码目录不一致,导致找不到文件。- 先打印当前工作目录验证:
import os print(os.getcwd()) # 输出路径需包含produtos.txt
如果路径不对,改用绝对路径打开文件:
def novo_produto(): # 替换成你的实际文件路径 file_path = r'C:\你的代码目录\produtos.txt' with open(file_path, 'a') as file: file.write(input('\nQue produto deseja introduzir?\nProduto: ') + '\n')- 先打印当前工作目录验证:
额外验证步骤
- 手动创建
produtos.txt(如果不存在)后再运行代码。 - 运行代码后直接去文件目录查看内容,不要只依赖VSCode的文件刷新(可能有延迟)。
内容的提问来源于stack exchange,提问作者Dio330go
相关产品推荐
相关产品推荐

