脚本执行正常,但不写入指定目录中的任何文件

时间:2015-06-27 17:33:55

标签: python python-2.7 file-writing listiterator

我正在尝试编写一个将遍历指定目录的脚本,并使用新字符串写入任何.txt文件。

阅读Lev Levitsky的解释后编辑

import os

x = raw_input("Enter the directory path here: ")

def rootdir(x):
    for dirpaths, dirnames, files in os.walk(x):
        for filename in files:
            try:
                with open(os.paths.join(dirpaths, filename 'a')) as f:
                    f.write("newline")
            except:
                print "Directory empty or unable to open file"
            return x
rootdir(x)

脚本执行,但是我的“目录为空或无法打开文件”例外。

提前感谢任何输入。

1 个答案:

答案 0 :(得分:0)

如果这是整个脚本,那么你的函数永远不会被调用,所以难怪文件没有任何反应。您需要使用用户提供的路径实际调用该函数:

rootdir(x)

我在您的代码中看到的其他问题:

  • 该功能将删除文本文件的内容并将其替换为“换行符”。那是因为您以写入模式打开文件。请考虑使用追加模式('a')。

  • 没有os.dirpaths。您需要os.path.join(dirpaths, filename)。此外,'w'join的参数,但它应该是open的参数。因此实际上文件将以读取模式打开并且名称不正确,从而导致错误。

  • 最后,由于循环体内的return语句,该函数将在处理一个文件后返回,而不会触及其余文件。