在python中使用“cat”时出现“无此类文件或目录”错误

在python中使用“cat”时出现“无此类文件或目录”错误,python,file,cat,Python,File,Cat,当我使用 cat folder1/folder2/*_in.txt>>output.txt 直接在航站楼,工作正常 但是当我从python进程内部调用时,它显示了一个错误,没有这样的文件或目录: 如果没有与模式匹配的文件,则会发生这种情况: $ python -c 'import os; os.system("cat *.txt")' cat: '*.txt': No such file or directory $ echo 'Hello World' > myfile

当我使用

cat folder1/folder2/*_in.txt>>output.txt 
直接在航站楼,工作正常

但是当我从python进程内部调用时,它显示了一个错误,没有这样的文件或目录:


如果没有与模式匹配的文件,则会发生这种情况:

$ python -c 'import os; os.system("cat *.txt")'
cat: '*.txt': No such file or directory

$ echo 'Hello World' > myfile.txt

$ python -c 'import os; os.system("cat *.txt")'
Hello World

请注意,文件是相对于进程的当前工作目录os.getcwd进行匹配的,而不是相对于Python文件。如果无法确定工作目录和文件的正确相对路径,请使用绝对路径。

如果没有与模式匹配的文件,则会发生这种情况:

$ python -c 'import os; os.system("cat *.txt")'
cat: '*.txt': No such file or directory

$ echo 'Hello World' > myfile.txt

$ python -c 'import os; os.system("cat *.txt")'
Hello World

请注意,文件是相对于进程的当前工作目录os.getcwd进行匹配的,而不是相对于Python文件。如果您无法确定工作目录和文件的正确相对路径,请使用绝对路径。

os.system绝对是一个shell@Omer那是不真实的。systemsomething调用['sh','-c',something]。sh很像一个shell。对,删除了我的误导性评论。为什么使用os.system而不是子流程模块?os.system绝对是一个shellshell@Omer那是不真实的。systemsomething调用['sh','-c',something]。sh很像一个shell。对,删除了我的误导性评论。为什么使用os.system而不是子流程模块?我更改了代码,使用了删除帖子的其他用户建议的代码!,我的意思是,在python本身中,使用for循环,它可以工作。但是我还有另一个命令要运行:chmod+x+filename,使用os.command,它给了我同样的问题。我尝试使用绝对路径。请注意,该文件位于同一文件夹中。我更喜欢直接使用os.command了解它的工作原理,这样我就可以在其他命令中使用它。我的Python 3.7.6中没有os.command,我在文档中找不到它。抱歉,我指的是os.system。在这两者之间,请忽略我所说的chmod,因为我发现了问题所在。但是,我仍然不能运行一个命令来连接所有的txt文件。你能写一个简短的,自我包含的演示脚本,我可以在我的机器上运行来查看问题吗?i、 e.a.我更改了代码以使用删除该帖子的其他用户建议的代码!,我的意思是,在python本身中,使用for循环,它可以工作。但是我还有另一个命令要运行:chmod+x+filename,使用os.command,它给了我同样的问题。我尝试使用绝对路径。请注意,该文件位于同一文件夹中。我更喜欢直接使用os.command了解它的工作原理,这样我就可以在其他命令中使用它。我的Python 3.7.6中没有os.command,我在文档中找不到它。抱歉,我指的是os.system。在这两者之间,请忽略我所说的chmod,因为我发现了问题所在。但是,我仍然不能运行一个命令来连接所有的txt文件。你能写一个简短的,自我包含的演示脚本,我可以在我的机器上运行来查看问题吗?i、 e.a。