我目前正在研究一些代码,这些代码将从.ini文件中查看多个目录,然后打印并将它们复制到新目录。我遇到了一个问题,即打印文件的for循环只执行一次,当它应该执行5次时。我如何解决它,以便每次调用for循环时都能正常工作?
代码:
def copyFiles(path):
rootPath = path
print(rootPath)
pattern = "*.wav"
search = ""
#searches the directories for the specified file type then prints the name
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
print(filename)
def main():
#opens the file containing all the directories
in_file = open('wheretolook.ini', "r")
#create the new directory all the files will be moved to
createDirectory()
#takes the path names one at a time and then passes them to copyFiles
for pathName in in_file:
copyFiles(pathName)
Output i get from running my code
输出应该在每个方向下都有0到4个文件。
感谢您的帮助!
答案 0 :(得分:0)
迭代文件时得到的pathName
在每一行的末尾都有换行符,但最后一行。这就是为什么在打印每个路径后在输出中得到空白行的原因。
您需要在路径上调用strip
以删除换行符:
for pathName in in_file:
copyFiles(pathname.strip())
你可能更具限制性并且使用rstrip('\n')
,但我怀疑无论如何都要删除所有前导和尾随空格。