在python中拆分字符串

在python中拆分字符串,python,python-2.6,Python,Python 2.6,我有如下python字符串 mystring = "copy "d:\Progrm Files" "c:\Progrm Files\once up on a time"" 如何将此字符串拆分为 mylist = [copy,d:\Progrm Files,c:\Progrm Files\once up on a time] 当我尝试使用mystring.split(“”)时,空格Progrm文件和一次也会被拆分。您想看看shell lexer。它专门用于将命令行(如您的命令行)拆分为其组成部

我有如下python字符串

mystring = "copy "d:\Progrm Files" "c:\Progrm Files\once up on a time""
如何将此字符串拆分为

mylist = [copy,d:\Progrm Files,c:\Progrm Files\once up on a time]

当我尝试使用
mystring.split(“”)时,空格
Progrm文件
一次
也会被拆分。

您想看看shell lexer。它专门用于将命令行(如您的命令行)拆分为其组成部分,包括正确处理引用

>>> import shlex
>>> command = r'copy "d:\Program Files" "c:\Program Files\once up on a time"'
>>> shlex.split(command)
['copy', 'd:\\Program Files', 'c:\\Program Files\\once up on a time']

此正则表达式捕获您想要的内容:

import re

mystring = "copy \"d:\Progrm Files\" \"c:\Progrm Files\once up on a time\""

m = re.search(r'([\w]*) ["]?([[\w]:\\[\w\\ ]+)*["]? ["]?([[\w]:\\[\w\\ ]+)*["]?', mystring)

print m.group(1)
print m.group(2)
print m.group(3)

>>> 
copy
d:\Progrm Files
c:\Progrm Files\once up on a time

你必须使用正则表达式来拆分你的例子是无效的python;引号内加引号,反斜杠转义。现在您的代码在shell上下文中无效;shell将以相同的方式解释空格,并且不会正确解释命令。嗨,Martijn,我收到了一个“无尾声引号”错误。你的引号仍然是相当严重的错误;您需要再次检查您的
mystring
是否为python和shell正确引用。将我的答案中给出的示例与您自己的代码进行比较。