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

Script executing fine, but not writing to any files in specified directory

我正在尝试编写一个脚本,该脚本将遍历指定目录,并使用新字符串写入任何 .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)

脚本执行,但是我得到 "Directory empty or unable to open file" 异常。

提前感谢您的任何意见。

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

rootdir(x)

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

  • 该函数将删除文本文件的内容并将其替换为"newline"。那是因为您以写入模式打开文件。考虑改用附加模式 ('a')。

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

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