这是我的copy.py:
from subprocess import call call("copy p2.txt p3.txt")
如果在命令提示符下使用
copy p2.txt p3.txt它复制罚款。
但是当我使用python copy.py它给了我:
为什么在Windows上调用MinGW编译函数(不加载库)时会得到UnsatisfiedLinkError?
Windows 10的通用应用程序,抛出exception:app.exe中的“System.UnauthorizedAccessException”,同时访问我的设备的信息?
以编程方式调整Windows 7计算机上的音量
C ++:在Windows上与高级subprocess进行通信
Traceback (most recent call last): File "copy.py",line 2,in <module> call("copy p2.txt p3.txt") File "C:Python27libsubprocess.py",line 493,in call return Popen(*popenargs,**kwargs).wait() File "C:Python27libsubprocess.py",line 679,in __init__ errread,errwrite) File "C:Python27libsubprocess.py",line 896,in _execute_child startupinfo) WindowsError: [Error 2] The system cannot find the file specified
如果我把python调用replace成xcopy,它可以正常工作。
为什么会这样?
Python脚本作为一个安全的EXE,甚至可能是一个Windowsapp store?
打开Windows C#WPF
VC#表单闪烁
在Windows上构build期间,Eclipse CDT超过了32k CreateProcess限制
任何机会访问原始像素,无论在Windows / Linux上的屏幕分辨率
当像subprocess.call()这样的shell命令,你也需要指定shell=True 。
from subprocess import call call("copy p2.txt p3.txt",shell=True)
在这种情况下,您需要使用shell=True的原因是,Windows中的copy命令实际上不是可执行文件,而是shell的内置命令(如果内存正常运行)。 另一方面, xcopy是一个真正的可执行文件(在%WINDIR%system32 ,通常在%PATH% ),因此可以在cmd.exe外部调用它。
在这个特定的例子中, shutil.copy或shutil.copy2可能是可行的选择。
请注意,使用shell=True可能会导致安全隐患,或者如文档所述:
警告:使用shell=True可能是安全隐患。 有关详细信息,请参阅常用参数下的警告。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。