我想知道使用os.system()在Python脚本中调用bash命令是否被认为是一种好的样式。我也想知道这样做是否安全。
我知道如何在Bash和Python中实现所需的某些功能,但是在Bash中实现它要简单得多,也更直观。但是,我觉得编写os.system(“ bashcode”)十分棘手。
具体来说,我想将所有以某种扩展名结尾的文件移动到目录中。
在bash中:* mv .ext / path / to / destination 在Python中(伪代码):用于目录中的文件:if file.endswith(“ ext”):将文件移至目标
在这种情况下,我该怎么办?
首先,您的示例使用 mv ,它是 coreutils中 的程序,而不是bash。
使用os.system()调用外部程序被认为是较差的样式,因为:
像其他人已经提到的那样,查找 glob ,以进行类似壳的模式匹配(globbing),然后 关闭shutil 。否则,您所需的一切都已经在标准库中。
import glob import shutil for extfile in glob.glob('*.ext'): shutil.move(extfile,dest)
另外,不应该使用 os.system() -而是看 一下子 流程 模块。