我正在尝试编写一个将遍历指定目录的脚本,并使用新字符串写入任何.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)
脚本执行,但是我的“目录为空或无法打开文件”例外。
提前感谢任何输入。
答案 0 :(得分:0)
如果这是整个脚本,那么你的函数永远不会被调用,所以难怪文件没有任何反应。您需要使用用户提供的路径实际调用该函数:
rootdir(x)
我在您的代码中看到的其他问题:
该功能将删除文本文件的内容并将其替换为“换行符”。那是因为您以写入模式打开文件。请考虑使用追加模式('a'
)。
没有os.dirpaths
。您需要os.path.join(dirpaths, filename)
。此外,'w'
是join
的参数,但它应该是open
的参数。因此实际上文件将以读取模式打开并且名称不正确,从而导致错误。
最后,由于循环体内的return
语句,该函数将在处理一个文件后返回,而不会触及其余文件。