脚本执行正常,但不写入指定目录中的任何文件
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 只处理一个文件,而不会触及其余部分。
我正在尝试编写一个脚本,该脚本将遍历指定目录,并使用新字符串写入任何 .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 只处理一个文件,而不会触及其余部分。