这是我到目前为止的代码:我相信我的问题来自模式匹配。我已经尽力在这里和其他来源找到答案,但到目前为止已经证明是困难的。请帮我。谢谢大家
def newInput(input_dir):
files = []
ext = '*[1]\.*txt', '*[2]\.*txt', '*\.csv'
for ext in ('*\.csv', '*[0-9]\.*txt'):
files.extend(glob.glob(os.path.join(input_dir, ext)))
for filenames in files:
if filenames.endswith('*[1]\.*txt', '*\.csv'):
subprocess.call([do something using the files])
elif files.endswith('*[2]\.*txt', '*\.csv'):
subprocess.call([do something using the files])
else:
print "Specify a correct path to input the files"
if __name__ == '__main__':
newInput(sys.argv[1])
答案 0 :(得分:1)
endswith
不接受您认为的论据。
str.endswith(suffix[, start[, end]])
如果字符串以指定的后缀结束,则返回True,否则返回False。 后缀也可以是要查找的后缀元组。通过可选的启动,从该位置开始测试。使用可选结束,停止在该位置进行比较。
但是,这段代码错了,因为:
files
每次迭代都会变长,因此您需要检查两次csv文件list
个对象没有endswith
成员 - 看起来像拼写错误endswith
不接受正则表达式