Python列表写入文本文件后文件为空,求解决建议
解决Python写入文件后内容为空的问题
哦,这个坑我之前踩过!咱们来一步步排查和解决:
优先使用
with语句(最稳妥的方案)
你当前的代码手动调用了close(),但有时候由于缓冲区机制,或者程序在close()前意外终止,会导致内容没写入磁盘。Python的with上下文管理器会自动帮你处理文件的关闭和缓冲区刷新,这是官方推荐的文件操作方式:test_list = ['hi', 'hello', 'welcome'] with open("test.txt", "w") as file1: for each_ele in test_list: file1.write(each_ele + '\n')用这个写法,你完全不用手动调用
close(),代码更简洁也更安全。检查文件是否在你预期的路径
当你用相对路径"test.txt"时,文件会被创建在Python脚本的当前工作目录里,而不是你打开文件管理器看到的那个文件夹。你可以先打印当前工作目录确认:import os print(os.getcwd())去这个路径下找找
test.txt,说不定它早就被正确写入了,只是你找错地方了😂。如果想指定路径,直接写绝对路径就行,比如"C:/Users/xxx/Desktop/test.txt"(Windows)或者"/Users/xxx/Desktop/test.txt"(Mac/Linux)。排查权限问题
如果你的脚本没有当前目录的写入权限,系统可能会创建一个空文件但无法写入内容。试试把文件写到你确定有权限的位置(比如桌面),或者检查一下当前目录的读写权限。手动刷新缓冲区(备选方案)
如果你不想用with语句,也可以在写入后手动调用flush()强制刷新缓冲区,再关闭文件:file1 = open("test.txt","w") test_list = ['hi', 'hello', 'welcome'] for each_ele in test_list: file1.write(each_ele+'\n') file1.flush() # 强制把缓冲区内容写入磁盘 file1.close()
内容的提问来源于stack exchange,提问作者data_person
相关产品推荐
相关产品推荐

