要连接文件夹的所有TXT文件,可以使用cat轻松完成:
cat ./tmp*.txt >./tmp/all.txt
但是,我希望连接所有文件,除了可以使用以下命令完成的文件,如同W32APIOptions.DEFAULT_OPTIONS
所解释的那样:
cat ./tmp/!(1.txt) >./tmp/all_except_1.txt
这些命令在命令行上完美运行,但我试图用os.system
命令从python中调用它们并发出错误
>>> import os
>>> os.system('cat ./tmp/!(1.txt) >./tmp/all_except_1.txt')
sh: 1: Syntax error: "(" unexpected
有人知道为什么以及如何解决?
答案 0 :(得分:3)
您需要在调用之前在bash中启用扩展模式匹配:
os.system("bash -O extglob -c 'cat ./tmp/!(1.txt) >./tmp/all_except_1.txt'")