CSS*_*ent 9 python unix subprocess mv stat
我在/ home/somedir/subdir /中有很多文件,我试图以编程方式将它们全部移动到/ home/somedir.
现在我有这个:
subprocess.call(["mv", "/home/somedir/subdir/*", "somedir/"])
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
mv: cannot stat `/home/somedir/subdir/*': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道它确实存在,因为当我使用与脚本使用的完全相同的命令手动键入mv命令时,它可以完美地工作.
zmo*_*zmo 13
如果以这种方式调用subprocess:
subprocess.call(["mv", "/home/somedir/subdir/*", "somedir/"])
Run Code Online (Sandbox Code Playgroud)
你实际上是用一个实际的文件/home/somedir/subdir/*给mv命令赋予参数*.即你实际上是想移动*文件.
subprocess.call("mv /home/somedir/subdir/* somedir/", shell=True)
Run Code Online (Sandbox Code Playgroud)
它将使用将扩展第一个参数的shell.
Nota Bene:在使用shell=True参数时,您需要将参数列表更改为将赋予shell的字符串.
提示:您还可以使用os.rename()或shutil.move()功能,沿os.path.walk()或os.listdir()将文件到目的地移动更Python的方式.