Handling directories with spaces Python subprocess

2019-01-12 03:04发布

I'm trying to create a program that scans a text file and passes arguments to subprocess. Everything works fine until I get directories with spaces in the path.

My split method, which breaks down the arguments trips up over the spaces:

s = "svn move folder/hello\ world anotherfolder/hello\ world"

task = s.split(" ")
process = subprocess.check_call(task, shell = False)

Do, either I need function to parse the correct arguments, or I pass the whole string to the subprocess without breaking it down first.

I'm a little lost though.

1条回答
时光不老,我们不散
2楼-- · 2019-01-12 03:49

Use a list instead:

task = ["svn",  "move",  "folder/hello world", "anotherfolder/hello world"]
subprocess.check_call(task)

If your file contains whole commands, not just paths then you could try shlex.split():

task = shlex.split(s)
subprocess.check_call(task)
查看更多
登录 后发表回答