csv 打印列表时显示\n [重复]

cxfofazt  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(201)
    • 此问题在此处已有答案**:

How can I remove a trailing newline?(27个答案)
2小时前关门了。
我必须从. csv文件加载联系人,无论何时打印,它都会显示\n。注意:我不能使用任何导入的/json模块,因为它必须依赖于传统的文件python处理

contacts = []
def loadContacts(filename):
    file = open('contacts.csv','r')
    keys = "name", "surname", "DOB", "mobileNo", "locality"
    while True:
        x = file.readline()
        if x == '':
            break
        else:
            value = x.split(',')
            contact = dict(tuple(zip(keys,value)))
            filename.append(contact)
    file.close()
    return contacts
loadContacts(contacts)
for x in contacts:
    print(x)

. csv文件:

Peter, Abdilla, 22/02/1986, 79811526, Zabbar
John, Borg, 12/04/1982, 99887654, Paola

输出:

{'name': 'Peter', 'surname': ' Abdilla', 'DOB': ' 22/02/1986', 'mobileNo': '79811526', 'locality': ' Zabbar\n'}
{'name': 'John', 'surname': ' Borg', 'DOB': ' 12/04/1982', 'mobileNo': '99887654', 'locality': ' Paola\n'}

预期输出应该是:

{'name': 'Peter', 'surname': ' Abdilla', 'DOB': ' 22/02/1986', 'mobileNo': '79811526', 'locality': ' Zabbar'}
{'name': 'John', 'surname': ' Borg', 'DOB': ' 12/04/1982', 'mobileNo': '99887654', 'locality': ' Paola'}
50pmv0ei

50pmv0ei1#

CSV中的每一行都有一个endLine字符'\n',因此当您尝试逐行读取csv文件的内容时,字符串中也会出现“\n”。
因此,我们只需要用一个空字符串替换'\n'
要解决这个问题,请使用python的string replace()函数。

while True:
    x = file.readline()
    x = x.replace('\n', '')
    if x == '':
        break
    else:
        value = x.split(',')
        contact = dict(tuple(zip(keys,value)))
        filename.append(contact)

相关问题