使shlex.split尊重UNC路径

Ada*_*ear 6 python shlex

我正在使用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
Run Code Online (Sandbox Code Playgroud)

产生

-path "\\server\folder\file.txt" -arg SomeValue
['-path', '\\server\\folder\\file.txt', '-arg', 'SomeValue']
Run Code Online (Sandbox Code Playgroud)

如您所见,前面的反斜杠被剥离.我通过添加以下两行来解决这个问题,但有更好的方法吗?

if args[0].startswith('\\'):
    args[0] = '\\' + args[0]
Run Code Online (Sandbox Code Playgroud)

dus*_*san 12

我不知道这是否对你有所帮助:

>>> shlex.split(raw_args, posix=False)
['-path', '"\\\\server\\folder\\file.txt"', '-arg', 'SomeValue']
Run Code Online (Sandbox Code Playgroud)