连接除一个调用系统之外的所有文件 - Python
Concatenate all files except one calling system - Python
要拼接一个文件夹的所有TXT文件,可以用cat轻松完成:
cat ./tmp*.txt >./tmp/all.txt
但是,我想连接所有文件,但可以使用以下命令完成的文件除外 here:
cat ./tmp/!(1.txt) >./tmp/all_except_1.txt
这些命令在命令行上运行完美,但我试图从 python 使用 os.system
命令调用它们并给出错误
>>> import os
>>> os.system('cat ./tmp/!(1.txt) >./tmp/all_except_1.txt')
sh: 1: Syntax error: "(" unexpected
有人知道为什么以及如何解决吗?
您需要在 bash 中启用扩展模式匹配才能调用它:
os.system("bash -O extglob -c 'cat ./tmp/!(1.txt) >./tmp/all_except_1.txt'")
要拼接一个文件夹的所有TXT文件,可以用cat轻松完成:
cat ./tmp*.txt >./tmp/all.txt
但是,我想连接所有文件,但可以使用以下命令完成的文件除外 here:
cat ./tmp/!(1.txt) >./tmp/all_except_1.txt
这些命令在命令行上运行完美,但我试图从 python 使用 os.system
命令调用它们并给出错误
>>> import os
>>> os.system('cat ./tmp/!(1.txt) >./tmp/all_except_1.txt')
sh: 1: Syntax error: "(" unexpected
有人知道为什么以及如何解决吗?
您需要在 bash 中启用扩展模式匹配才能调用它:
os.system("bash -O extglob -c 'cat ./tmp/!(1.txt) >./tmp/all_except_1.txt'")