0

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

阅读列维茨基的解释后编辑

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)

脚本执行,但是我得到“目录为空或无法打开文件”异常。

提前感谢您的任何意见。

4

1 回答 1

0

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

rootdir(x)

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

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

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

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

于 2015-06-27T18:45:58.183 回答