使用Python拆分字符串的步骤

使用Python拆分字符串的步骤,python,Python,我尝试使用Python拆分字符串,如下所示: 10004, 10005, 0,'1 ',2,2,1, 0.00000E+0, 0.00000E+0, 2, 'ALCAZAR,NMRD ',1, 129,1.0000 我想把“ALCAZAR,NMRD”作为一个单词。显然,如果我在str.split()中使用,“作为拆分器,这个单词将被拆分为两个字符串。我想用空格替换这个单词中的“,”,然后用“,”作为拆分器拆分整行。但是str.replace()没有给我指定的开始或结束位置。非常

我尝试使用Python拆分字符串,如下所示:

10004, 10005,     0,'1 ',2,2,1, 0.00000E+0, 0.00000E+0, 2, 'ALCAZAR,NMRD     ',1, 129,1.0000

我想把
“ALCAZAR,NMRD”
作为一个单词。显然,如果我在
str.split()
中使用
,“
作为拆分器,这个单词将被拆分为两个字符串。我想用空格替换这个单词中的
“,”
,然后用
“,”
作为拆分器拆分整行。但是
str.replace()
没有给我指定的开始或结束位置。非常感谢您的反馈。

如果您只想从字符串中删除逗号,可以使用
string.translate()

my_string = "ALCAZAR,NMRD"
my_string.translate(None, ',')


编辑:您也可以使用
string.replace()
,但我认为
string.translate()
更快

只需使用正则表达式:

import re
target = """10004, 10005, 0,'1 ',2,2,1, 0.00000E+0, 0.00000E+0, 2, 'ALCAZAR,NMRD ',1, 129,1.0000"""

exp = re.compile(r'(['\"][A-Za-z ]+,[\A-Za-z ]+['\"])|\'*([0-9\.E\+\-]+)')
exp.findall(target)
返回[(“10004”)、(“10005”)、(“0”)、(“1”)、(“2”)、(“2”)、(“2”)、(“1”)、(“0.00000E+0”)、(“0.00000E+0”)、(“2”)、(“ALCAZAR,NMRD”)、(“1”)、(“129”)、(“1.0000”)]
然后对匹配项执行所需操作。

对于示例字符串,可以使用:

印刷品:

['10004', '10005', '0', '1 ', '2', '2', '1', '0.00000E+0', '0.00000E+0', '2', 
'ALCAZAR,NMRD ', '1', '129', '1.0000']
如果您想消除每个元素上的尾随空格(例如
'ALCAZAR,NMRD'
->
'ALCAZAR,NMRD'
):


到底是什么问题?到目前为止你试过什么?这看起来像CSV。您尝试了吗?这并不能解决问题,因为您的示例在从上面的整行提取字符串后使用了该字符串。您建议如何处理提出的问题?Drewk,非常感谢!你提供的线索正是我要找的。
['10004', '10005', '0', '1 ', '2', '2', '1', '0.00000E+0', '0.00000E+0', '2', 
'ALCAZAR,NMRD ', '1', '129', '1.0000']
for e in csv.reader(st.splitlines(), **kwargs):
    e=[x.strip() for x in e]
    # ... process the split list of elements from a line of csv...