Python: 使用管道作为分隔符分隔字符串

Python: separating strings using pipes as delimiter

我有一个字符串列表,其中的数据由竖线分隔,我想使用竖线作为分隔符来拆分这些字符串。我试过使用 x.split('|'),但它不起作用。这是我当前的代码:

 datas = []
    location = os.path.dirname(os.path.abspath(__file__))
    with open(filename, newline = '') as dar:
        for row in csv.reader(dar):
            datas.append(row)
    for x in datas:
       x[0].split('|')

这是我得到的输出的一个片段:

['Crimson Rosella|-35.27454538728105|149.11596655088428|ACTON|2004-02-01|Aves|Psittaciformes|Psittacidae|Platycercus|Platycercus elegans|False'], ['Little cormorant|-35.27719826516971|149.11525904557516|Australian National University|2015-06-13|Aves|Pelecaniformes|Phalacrocoracidae|Phalacrocorax|Phalacrocorax melanoleucos|False']

提前致谢

x[0].split('|') 没有取得任何成就,因为您没有对其结果做任何事情。也许你想这样做?

datas = [x.split('|') for x in datas]

你也可以用这个代替:

datas.append(row.split('|'))

这可能有效:

# x = text from line in datas, x[0] = first letter on the line
x = "Crimson Rosella|-35.27454538728105|149.11596655088428|ACTON|2004-02-01|Aves|Psittaciformes|Psittacidae|Platycercus|Platycercus elegans|False'], ['Little cormorant|-35.27719826516971|149.11525904557516|Australian National University|2015-06-13|Aves|Pelecaniformes|Phalacrocoracidae|Phalacrocorax|Phalacrocorax melanoleucos|False"

x = x.split('|')

print(x)

您可以使用csv模块中的delimiter参数来分隔|

例如:

import csv
with open(filename) as dar:
    for row in csv.reader(dar, delimiter='|'):
        print(row)

输出:

['Crimson Rosella', '-35.27454538728105', '149.11596655088428', 'ACTON', '2004-02-01', 'Aves', 'Psittaciformes', 'Psittacidae', 'Platycercus', 'Platycercus elegans', 'False']
['Little cormorant', '-35.27719826516971', '149.11525904557516', 'Australian National University', '2015-06-13', 'Aves', 'Pelecaniformes', 'Phalacrocoracidae', 'Phalacrocorax', 'Phalacrocorax melanoleucos', 'False']