我有一个包含类似以下行的文件:
[<data_type0>,<data_type1>] name(data)
"DATA_VALUE0"|"DATA_VALUE1" name(data)
我希望将每一行分成两行。第一部分介于&#39;&lt;&#39;之间。和&#39;&gt;&#39; &#39; [&#39;和&#39;]&#39;或&#34;和&#34;。
因此,所需拆分的输出将是:
valueA[0] = [data_type0,data_type1]
valueA[1] = [name(data)]
valueB[0] = [DATA_VALUE0,DATA_VALUE1]
valueB[1] = [name(data)]
一个障碍是数据值的长度未知,因此有些行可以读取:
<date_type0> name(data)
和其他人可能是:
<data_type0>,<data_type1>,<data_type2>...<data_type8> name(data)
任何想法如何?
答案 0 :(得分:2)
看起来您可以拆分空间。
>>> data = """[<data_type0>,<data_type1>] name(data)
... "DATA_VALUE0"|"DATA_VALUE1" name(data)"""
>>> for line in data.split("\n"):
... print(line.split())
...
['[<data_type0>,<data_type1>]', 'name(data)']
['"DATA_VALUE0"|"DATA_VALUE1"', 'name(data)']
答案 1 :(得分:2)
您要找的是rsplit()
:
lines = (
'"[ < data_type0 >, < data_type1 >] name(data)',
'"DATA_VALUE0" | "DATA_VALUE1" name(data)',
)
for line in lines:
print(line.rsplit(' ', 1))
['"[ < data_type0 >, < data_type1 >]', 'name(data)']
['"DATA_VALUE0" | "DATA_VALUE1"', 'name(data)']
答案 2 :(得分:0)
还有一种通用的方法来查找字符串中的东西并将它们分开。
a = '<data_1>,<data_2> name(data)'
division = a.find('name(')
b = a[:division-1]
c = a[division:]
结果:
>>> b
'<data_1>,<data_2>'
>>> c
'name(data)'