如何在python Windows中使用Linux命令

时间:2017-03-27 14:32:10

标签: python linux windows

是否可以在Windows python中使用mv。 我想使用mv --backup=t *.pdf ..\制作现有文件的副本,但不想覆盖它们,而Windows move命令不支持现有文件的后缀。

我可以在Windows Bash或CygWin中使用mv命令运行我的脚本,但不能在cmdpowershell上运行。 那么可以在Windows python中使用Linux命令吗?

编辑:我正在使用python 2.7

2 个答案:

答案 0 :(得分:1)

我尝试了一种不同的方法,在名称末尾用随机十六进制重命名现有文件'

我非常满意:D

if os.path.isfile('../%s.pdf' % name) == True: os.system('magick *.jpg pdf:"%s".pdf' % name_hex) else: os.system('magick *.jpg pdf:"%s".pdf' % name)

答案 1 :(得分:0)

os.rename(src, dst)

将文件或目录src重命名为dst。如果dst是目录,则会引发OSError。在Unix上,如果dst存在且是一个文件,如果用户有权限,它将被静默替换。如果src和dst在不同的文件系统上,则某些Unix风格的操作可能会失败。如果成功,重命名将是原子操作(这是POSIX要求)。 在Windows上,如果dst已经存在,即使它是文件,也会引发OSError;当dst命名现有文件时,可能无法实现原子重命名。

shutil.move(src, dst)

递归地将文件或目录(src)移动到另一个位置(dst)。

如果目标是现有目录,则src将在该目录中移动。如果目标已经存在但不是目录,则可能会被覆盖,具体取决于os.rename()语义。

如果目标位于当前文件系统上,则使用os.rename()。否则,将src复制(使用shutil.copy2())到dst然后删除。

如果我找对你,两者都会为你效劳。

顺便说一下,当我安装git时,您可以在安装过程中在CMD中启用Linux命令。 (注意那里的复选框),但我不确定它将如何表现并与你的脚本集成。