Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何重新分割这条线_Python_Regex - Fatal编程技术网

Python 如何重新分割这条线

Python 如何重新分割这条线,python,regex,Python,Regex,要拆分此行: 1, 0.625, 0., 2.5 要获得输出字符串,请执行以下操作: a = [" " , "1" , "," , " " , "0.625" , "," , " " , "0." , "," , " " , "2.5"] 因此,我可以更改的值,例如a[0]=2,最后得到: 2, 0.625, 0., 2.5 可能吗?请帮助您可以使用re.

要拆分此行:

  1,        0.625,           0.,          2.5
要获得输出字符串,请执行以下操作:

a = ["   " , "1" , "," , "     " , "0.625" , "," , "   " , "0." , "," , "    " , "2.5"] 
因此,我可以更改的值,例如
a[0]=2
,最后得到:

  2,        0.625,           0.,          2.5

可能吗?请帮助您可以使用
re.split
并在要拆分的对象周围放置一个组
(…)
,例如
,|\s+
。这样,分隔符本身就是结果的一部分。不过,这会在逗号和空格之间产生一些空组,您必须将其过滤掉

>>> s = "  1,        0.625,           0.,          2.5"
>>> [x for x in re.split(r"(,|\s+)", s) if x]
['  ', '1', ',', '        ', '0.625', ',', '           ', '0.', ',', '          ', '2.5']
但是,请注意,如果您的目标是替换值并保持某种表格布局,那么这将比需要的更复杂。此外,如果新值的位数不同,则它也无法正常工作。相反,您可以按
进行拆分,当您替换一个值时,
r将新值的宽度调整为与旧值相同的宽度

>>> vals = s.split(",")
>>> vals[2] = str(3.1415).rjust(len(vals[2]))
>>> ','.join(vals)
'  1,        0.625,       3.1415,          2.5'
>>> s
'  1,        0.625,           0.,          2.5'

如果你想替换,你可能不需要先拆分。首先,我想感谢你回答这个问题。第二,事实上,我有不同的位数。我需要更改第2列中的一些值。当我这样做时,逗号消失了,我得到的列之间没有逗号。例如,我应该将数字3.1415改为7.888888。其他选项卡和空格不能更改,这一点很重要。我打开txt文件并将其拆分。这是Abaqus输入文件,我正在尝试更改节点的y坐标。最后,我会写一个新的输入文件,并将其与abaqus再次连接,这就是为什么其他选项卡应与原始版本相同的原因。@BADAT编程我真的不理解您的评论。逗号什么时候消失?请注意,我通过
加入
,而您以前可能是通过
'
加入的,因为
仍在列表中。