2016-04-24 239 views
1

我有一个Python脚本在我的笔记本电脑上正常运行,但在我的树莓派上运行时,下面的代码似乎没有正常工作。具体而言,“TextFile.txt”未被更新和/或保存。Python脚本没有写入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”所有。

+0

如果这是由于权限问题引起的,那么打开该文件会引发异常,但您声称不会发生这种情况。 –

回答

0

由于您的代码正在运行,因此应该有某个文件。

您调用“PATH/script.py”,但程序中有“/PATH/TextFile.txt”。 PATH之前的斜线是否是一个错误?你有没有在你的程序中检查路径确实是你正在寻找输出文件的地方?

0

我的第一个猜测:

该文件是否存在?如果它不存在,那么你不能写信给它。试试这个来创建文件,如果它不存在的话: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 
0

全部,谢谢您的输入。我能够弄清楚它正在写入新文件,但它被同一文本覆盖。原因是因为当我预期真实的时候,“.startswith”会回复错误。误解是由于Windows和Unix如何处理新行字符(/ n/r)之间的区别。