我正在使用shlex.split
来标记subprocess.Popen
调用的参数。然而,当其中一个args是UNC路径时,事情变得毛茸茸:
import shlex
raw_args = '-path "\\\\server\\folder\\file.txt" -arg SomeValue'
args = shlex.split(raw_args)
print raw_args
print args
产生
-path "\\server\folder\file.txt" -arg SomeValue
['-path', '\\server\\folder\\file.txt', '-arg', 'SomeValue']
如您所见,前面的反斜杠被剥去了。我正在通过添加以下两行来解决这个问题,但有更好的方法吗?
if args[0].startswith('\\'):
args[0] = '\\' + args[0]
答案 0 :(得分:11)
我不知道这是否对您有所帮助:
>>> shlex.split(raw_args, posix=False)
['-path', '"\\\\server\\folder\\file.txt"', '-arg', 'SomeValue']
答案 1 :(得分:0)
试试这个:
raw_args = r'-path "\\\\server\\folder\\file.txt" -arg SomeValue'
在开头单引号前注意 r 。