Handling directories with spaces Python subprocess.call()

落花浮王杯 提交于 2019-12-17 12:46:28

问题


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:


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)


来源:https://stackoverflow.com/questions/11846232/handling-directories-with-spaces-python-subprocess-call

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!