Python脚本不写入txt文件
Posted
技术标签:
【中文标题】Python脚本不写入txt文件【英文标题】:Python script not writing to txt file 【发布时间】:2016-08-17 23:03:34 【问题描述】:我有一个 Python 脚本可以在我的笔记本电脑上正常运行,但是在我的树莓派上运行时,以下代码似乎无法正常运行。具体来说,“TextFile.txt”没有被更新和/或保存。
openfile = open('/PATH/TextFile.txt','w')
for line in lines:
if line.startswith(start):
openfile.write(keep+'\n')
print ("test 1")
else:
openfile.write(line)
print ("test 2")
openfile.close()
我在输出中看到“测试 1”和“测试 2”,因此我知道正在访问代码、路径正确等
这可能是由于权限问题。我正在使用以下命令从终端运行脚本:
usr/bin/python PATH/script.py
Python 归“root”所有,script.py 归“Michael”所有。
【问题讨论】:
如果是权限问题,打开文件会抛出异常,但你声称没有发生。 【参考方案1】:由于您的代码正在运行,因此某处应该有一个文件。
您调用“PATH/script.py”,但程序中有“/PATH/TextFile.txt”。 PATH 之前的斜线是错误的吗?您是否检查过程序中的路径是否真的是您要查找输出文件的位置?
【讨论】:
【参考方案2】:大家好,感谢您的意见。我能够弄清楚它正在写入新文件,但它被相同的文本覆盖。原因是“.startswith”在我预期为真时返回假。这种误解是由于 Windows 和 Unix 处理换行符 (/n /r) 的方式不同。
【讨论】:
【参考方案3】:我的第一个猜测:
文件是否存在?如果它不存在,那么您无法写入它。如果文件不存在,试试这个创建文件:file = open('myfile.dat', 'w+')
另外手动打开和关闭文件句柄在 python 中是不好的做法。 with 语句会自动为您处理资源的打开和关闭:
with open("myfile.dat", "w+") as f:
#doyourcalculations with the file object here
for line in f:
print line
【讨论】:
以上是关于Python脚本不写入txt文件的主要内容,如果未能解决你的问题,请参考以下文章