Python for循环只执行一次

时间:2016-07-19 22:26:03

标签: python for-loop

我目前正在研究一些代码,这些代码将从.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个文件。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

迭代文件时得到的pathName在每一行的末尾都有换行符,但最后一行。这就是为什么在打印每个路径后在输出中得到空白行的原因。

您需要在路径上调用strip以删除换行符:

for pathName in in_file:
    copyFiles(pathname.strip())

你可能更具限制性并且使用rstrip('\n'),但我怀疑无论如何都要删除所有前导和尾随空格。