我有一个小问题。
我有以下功能:
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
应该是,但我不确定这是否在手头的问题中有任何部分并且不仅仅是一个意外的空间放置脚本中的其他地方。
答案 0 :(得分:6)
strip
会删除字符串两端的所有字符,无论它们出现何种顺序。如果字符串为c.gcom
,则strip('.gcom')
会删除所有字符.
来自字符串末尾的},g
,c
,o
和m
,不留任何东西。在点击不是.
,g
,c
,o
或m
(或删除所有内容)的字符之前,它不会停止剥离
如果您的字符串以.gcom
结尾,并且您只想删除该结尾,则可以使用:
z = file[:-5]
或使用您的com_ext
变量
com_ext = '.gcom'
...
if file.endswith(com_ext):
z = file[:-len(com_ext)]