Python 从分隔不一致的csv文件返回特定值

Python 从分隔不一致的csv文件返回特定值,python,string,python-3.x,csv,split,Python,String,Python 3.x,Csv,Split,这个问题看起来很简单,但我从几小时前就开始了,下面是我的数据: \N PARIS PREMIERE,1375,7 RTL9,1376,7 TV BREIZH,1162,7 C+ CINEMA,1594,7 \N C+ SPORT,1595,7 OCS MAX,799,7 我想要的输出是: 1375 1376 1162 1594 1595 799 为此,我运行以下代码: list_data = data.split('\n') for line in list_data:

这个问题看起来很简单,但我从几小时前就开始了,下面是我的数据:

\N
PARIS PREMIERE,1375,7
RTL9,1376,7
TV BREIZH,1162,7
C+ CINEMA,1594,7
\N
C+ SPORT,1595,7
OCS MAX,799,7
我想要的输出是:

1375
1376
1162
1594
1595
799
为此,我运行以下代码:

    list_data = data.split('\n')
    for line in list_data:
        for s in line.split(','):
            params = s.split('\n')
但它似乎不起作用。如果你有任何想法,我可以解决我的问题,请帮助。
谢谢大家!

它使用
pandas
返回所需列表的一种方式:

import pandas as pd
from io import StringIO

mystr = StringIO(r"""\N
PARIS PREMIERE,1375,7
RTL9,1376,7
TV BREIZH,1162,7
C+ CINEMA,1594,7
\N
C+ SPORT,1595,7
OCS MAX,799,7""")

df = pd.read_csv(mystr, header=None, delimiter='~')

res = df.loc[df[0] != r'\N', 0].str.split(',').str[-2].astype(int).tolist()
结果:

[1375, 1376, 1162, 1594, 1595, 799]

然后,您可以使用此列表执行您喜欢的操作,例如写入文件、在程序中的其他位置使用等。

您可以筛选所有不需要的Delimeter:

params = []
list_data = data.split('\n')
    for line in list_data:
        if len(line.split(',')) == 3
            params.append(line.split(',')[1])
import csv
with open('filename.csv') as f:
  data = [int(i[-2]) for i in csv.reader(f) if len(i) > 1 or i[0] != '\\N']
  print(data)
输出:

[1375, 1376, 1162, 1594, 1595, 799]

非常感谢你,我没有想到要使用熊猫,你的代码就像魔术一样!