CMD创建一个新文件夹,但“文件名,目录或卷语法不正确”

时间:2017-09-29 11:57:39

标签: python cmd

我尝试使用Python运行以下命令行。第一个命令行总是可以工作,但第二个命令行不能,我不知道为什么。

import os, sys

os.system('IF EXIST C:\APC (echo 1) else (mkdir C:\APC)')

os.system('IF EXIST C:\APC\3d (echo 1) else (mkdir C:\APC\3d)')

如果有人知道答案,请告诉我们谢谢!

1 个答案:

答案 0 :(得分:3)

这完全符合运气:

os.system('IF EXIST C:\APC (echo 1) else (mkdir C:\APC)')

因为反斜杠不会转义任何内容(\A不是转义序列)

但是只需将第二个命令粘贴到python REPL中,然后看:

>>> 'IF EXIST C:\APC\3d (echo 1) else (mkdir C:\APC\3d)'
'IF EXIST C:\\APC\x03d (echo 1) else (mkdir C:\\APC\x03d)'

反斜杠数字被解释为实际的字节值...使用原始字符串前缀修复:

>>> r'IF EXIST C:\APC\3d (echo 1) else (mkdir C:\APC\3d)'
'IF EXIST C:\\APC\\3d (echo 1) else (mkdir C:\\APC\\3d)'

但不要调用系统命令来测试&创造dirs。使用纯python来做到这一点:

import os

d = r"C:\APC\3d"
if os.path.exists(d):
    print("exists")
else:
    os.mkdir(d)

它更易读,更易于调试,您可以从python异常中受益,并使您的代码在其他平台上更具可移植性(当然,不是使用那种硬编码路径)