如何在Python中复制Window的subst命令?
问题描述:
我想映射一个虚拟驱动器在我的Windows设置我正在使用的工具之一不喜欢文件名中的空格。如何在Python中复制Window的subst命令?
在命令行中,我会做以下
subst l: "c:\Program Files\Complier\version 6.0\bin"
我试图复制在Python的功能没有任何成功。我开始使用os.execl()
直接执行subst
命令,但报告了无效的参数错误。
SO上的一些其他解决方案建议直接使用Win32API。
顺便说一句,我在Windows上使用Python 2.7.3。
答
您可以直接调用Windows API。请注意,您需要在此传递unicode字符串,或者您可以在函数上设置argtypes以获得类型安全的行为。
from ctypes import windll, c_int, c_wchar_p
DefineDosDevice = windll.kernel32.DefineDosDeviceW
DefineDosDevice.argtypes = [ c_int, c_wchar_p, c_wchar_p ]
# Create a subst. Check the return for non-zero to mean success
if DefineDosDevice(0, "T:", "C:\\Temp") == 0:
raise RuntimeError("Subst failed")
# Delete the subst.
if DefineDosDevice(2, "T:", "C:\\Temp") == 0:
raise RuntimeError("Couldn't remove subst")
可能是'subprocess'模块可以提供帮助。尝试使用'subprocess.call()'完成此任务。 – RanRag