首页 > 解决方案 > Python脚本没有在目录中列出文件?

问题描述

我有一个小问题。

我有以下功能:

def getCommands():
    for file in os.listdir(com_dir):
        if file.endswith(com_ext):
            z = string.strip(file, '.gcom')
            print z

并且在目录(定义者com_dir)中有三个文件。

a.gcom b.gcom c.gcom

跑步时getCommands()

输出如下:

a b

显示了文件 a 和 b,但是未显示 c,所有文件都在目录中,并且都使用相同的文件扩展名:.gcom这也是com_ext可变的。

有没有人有关于为什么文件 c 没有显示的任何提示?

旁注:输出中似乎有一个空格,c但是我不确定这是否与手头的问题有关,而不仅仅是脚本中其他地方的意外空间。

标签: pythonpython-2.7

解决方案


strip从字符串的两端删除所有给定的字符,无论它们出现的顺序如何。如果您的字符串是c.gcom,则从字符串的末尾strip('.gcom')删除所有字符., g, c, oand m,不留下任何东西。它不会停止剥离,直到遇到不是., g, c, oor的字符m(或删除所有内容)。

如果您有一个以 结尾的字符串.gcom,并且您只想删除该结尾,则可以使用:

z = file[:-5]

或者,使用您的com_ext变量

com_ext = '.gcom'
...
if file.endswith(com_ext):
    z = file[:-len(com_ext)]

推荐阅读