我有一个CSV文件,如下所示:
Name1,1,2,3
Name2,1,2,3
Name3,1,2,3
我需要逐行将其读入2D列表。我写的代码几乎完成了这项工作;但是,我在删除第三个索引末尾的新行字符'\n'
时遇到问题。
score=[]
for eachLine in file:
student = eachLine.split(',')
score.append(student)
print(score)
目前的输出如下:
[['name1', '1', '2', '3\n'], ['name2', '1', '2', '3\n'],
我需要它看起来像:
[['name1', '1', '2', '3'], ['name2', '1', '2', '3'],
答案 0 :(得分:2)
在处理它们时,只需在每一行上调用str.strip
:
score=[]
for eachLine in file:
student = eachLine.strip().split(',')
score.append(student)
print(score)
答案 1 :(得分:1)
您可以使用splitlines
第一种方法
>>> s = '''Name1,1,2,3
... Name2,1,2,3
... Name3,1,2,3'''
>>> [ item.split(',') for item in s.splitlines() ]
[['Name1', '1', '2', '3'], ['Name2', '1', '2', '3'], ['Name3', '1', '2', '3']]
第二种方法
>>> l = []
>>> for item in s.splitlines():
... l.append(item.split(','))
...
>>> l
[['Name1', '1', '2', '3'], ['Name2', '1', '2', '3'], ['Name3', '1', '2', '3']]
答案 2 :(得分:0)
如果您知道它是\ n和\ n \ n,
score=[]
for eachLine in file:
student = eachLine[:-1].split(',')
score.append(student)
print(score)
在拆分发生之前,使用切片删除尾随的新行字符。
根据评论员的建议编辑;)更加整洁。
答案 3 :(得分:0)
使用rstrip函数识别每行末尾的\ n并将其删除。 请参阅以下代码以供参考。
with open('myfile.csv', 'wb') as file:
for line in file:
line.rstrip('\n')
file.write(line)