所以我必须采取一个.csv文件(可以下载,点击这个:http://ge.tt/7lx5Boj2/),我想将它转换成一个2D列表。如何在2D列表中替换字符串字符?
我的代码目前是这样做的,但有一个问题。
嵌套列表中的每个元素都被读为大字符串而不是元素列表,因为在每个嵌套列表的开始和结尾都添加了撇号。
例如,而不是:
["ID","Name","Type 1","Type 2","Generation","Legendary"]
我越来越:
['"ID","Name","Type 1","Type 2","Generation","Legendary"']
要解决这个问题,我试图让一个嵌套循环来一个空的替换列表中的每个撇号字符,但我的代码不会做任何事情。它只是打印完全相同的字符串,就好像替换操作从未发生过一样。
def read_info_file(filename):
opened_infocsv = open(filename, 'r') #opens an argued .csv file with INFO ormat.
linebylinelist = [fline.splitlines() for line in opened_infocsv] #converts entire .csv into a 2D list
opened_infocsv.close()
print(linebylinelist)
print('\n')
for i in linebylinelist:
for l in i:
l.replace("'","")
print(linebylinelist)
read_info_file('info_file5.csv')
任何想法解决这个问题?注意:我不允许导入CSV
编辑:我试过改变.replace到.strip,它仍然不起作用。我真的不知道如何解决这个问题。
我认为问题的根源与我使用列表理解将CSV转换为2d列表的方式有关。也许可以将CSV转换为2d列表,而不必先将行转换为字符串。
我建议你至少在使用Python的csv库。这将自动将每行转换为值列表,而无需拆分或替换。 –
不幸的是,我不允许导入csv – ruckarucka