这个问题看起来很简单,但是几小时后我就堆叠了,这就是我的数据:
\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')
但似乎没有用。如果您有任何想法我如何解决我的问题请帮助。 谢谢!
答案 0 :(得分:1)
params = []
list_data = data.split('\n')
for line in list_data:
if len(line.split(',')) == 3
params.append(line.split(',')[1])
答案 1 :(得分: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]
答案 2 :(得分:0)
使用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]
然后,您可以使用此列表执行您喜欢的操作,例如:写入文件,在程序中的其他地方使用,等等。