我想让它以递归方式调用手动输入文件中列出的下一个文件。这是文件中列出的第一个单词。
当前的错误消息是:
OSError: [Errno 22] Invalid argument: 'file1.txt\n'.
这是我目前的代码:
import os
def crawl(fname):
infile = open(fname, 'r')
if os.stat(fname)[6]==0:
return "Visiting {}".format(fname)
infile.close()
else:
print ("Visiting {}".format(fname))
lines = infile.read().splitlines()
nextfile = lines[0].strip()
for line in lines:
crawl(nextfile)
答案 0 :(得分:1)
我很确定问题是你在第一个文件中读取的文件名末尾有一个换行符。您可以使用strip
方法删除换行符轻松修复它:
nextfile = lines[0].strip()
答案 1 :(得分:1)
尝试:
import os
def crawl(fname):
with open(fname, "r") as infile:
print("Visiting {}".format(fname))
if os.stat(fname).st_size:
lines = infile.read().splitlines()
for line in lines:
crawl(line)