下面的代码是我正在编写的程序的一部分,它在每个.py,.sh上运行一个方法。或目录及其文件夹中的.pl文件。
for root, subs, files in os.walk("."):
for a in files:
if a.endswith('.py') or a.endswith('.sh') or a.endswith('.pl'):
scriptFile = open(a, 'r')
writer(writeFile, scriptFile)
scriptFile.close()
else:
continue
编写程序时,它在我编写的目录树中工作,但当我将它移动到另一个文件夹尝试它时,我收到此错误消息:
Traceback (most recent call last):
File "versionTEST.py", line 75, in <module>
scriptFile = open(a, 'r')
IOError: [Errno 2] No such file or directory: 'enabledLogSources.sh'
我知道一些奇怪的事情正在发生,因为文件肯定存在......
答案 0 :(得分:1)
您需要将根目录添加到文件名
scriptFile = open(root + '/' + a, 'r')
答案 1 :(得分:1)
文件仅包含文件名,而不包含整个路径。可以通过加入文件名和根目录来获取文件的路径:
scriptFile = open(os.path.join(root, a), "r")