Python脚本没有写入txt文件

时间:2016-04-24 16:06:24

标签: python linux permissions

我有一个可以在我的笔记本电脑上正常运行的Python脚本,但是在我的覆盆子pi上运行时,以下代码似乎无法正常运行。具体而言," 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" and script.py归" Michael"。

所有

3 个答案:

答案 0 :(得分:0)

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

你打电话给" PATH / script.py",但是有#34; /PATH/TextFile.txt"在你的程序中。 PATH之前的斜线是错误吗?您是否检查过程序中的路径是否正在寻找输出文件?

答案 1 :(得分: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

答案 2 :(得分:0)

全部,谢谢你的意见。我能够发现它正在写入新文件,但它被覆盖了相同的文本。原因是因为“.startswith”在我预期为真时返回了假。误解是由于Windows和Unix如何处理换行符(/ n / r)之间的差异。