Python中使用write()函数写入矩阵到文本文件失败求助
问题排查与解决
核心问题分析
你的代码逻辑本身没问题,但存在文件资源未安全释放的潜在风险,以及可能的路径误解问题:
- 文件缓冲区未强制写入/关闭异常:虽然你调用了
openFile.close(),但如果程序在执行到close()之前意外崩溃(比如循环中抛出未捕获的异常),文件句柄没被正常关闭,缓冲区里的内容就不会写入磁盘,导致文件为空。另外,Python的文件写入默认是缓冲的,在close之前可能没真正刷到磁盘。 - 路径错误:你指定的
filename如果是相对路径,程序运行的工作目录可能和你预期的不一致,导致文件被写到了其他位置,你查看的是错误路径下的空文件。
修复后的代码
用with语句(上下文管理器)处理文件操作,它会自动负责文件的打开和关闭,即使发生异常也能确保缓冲区内容写入磁盘:
def writeFile1(self, filename, matrix): with open(filename, 'w') as openFile: for row in matrix: row_str = " ".join(str(x) for x in row) # convert row to string print(row_str) openFile.write(row_str + "\n")
额外排查步骤
- 打印文件绝对路径,确认写入位置:
检查这个路径下的文件是否有内容,排除路径误解的问题。import os print(os.path.abspath(filename)) - 确认矩阵有效:在循环前添加
print(len(matrix)),确保矩阵确实包含行数据。
内容的提问来源于stack exchange,提问作者Shivam
相关产品推荐
相关产品推荐

