如何从csv文件中删除换行符?

时间:2019-05-11 10:22:06

标签: python

如何从csv文件中删除换行符?这是我当前的输出结果: {'\n': ('', ''), '0-586-08997-7\n': ('Kurt Vonnegut', 'Breakfast of Champions'), '978-0-14-302089-9\n': ('Lloyd Jones', 'Mister Pip'), '1-877270-02-4\n': ('Joe Bennett', 'So Help me Dog'), '0-812-55075-7': ('Orson Scott Card', 'Speaker for the Dead')}

这就是输出假设的样子:

{'0-586-08997-7': ('Kurt Vonnegut', 'Breakfast of Champions'), '978-0-14-302089-9': ('Lloyd Jones', 'Mister Pip'), '1-877270-02-4': ('Joe Bennett', 'So Help me Dog'), '0-812-55075-7': ('Orson Scott Card', 'Speaker for the Dead')}

我不想使用任何内置的csv工具或其他任何工具,因为我们还没有在课堂上完成这些工作,所以我怀疑是否需要在这些问题中使用它们。

def isbn_dictionary(filename):
    """docstring"""
    file = open(filename, "r")
    library = {}


    for line in file:
        line = line.split(",")
        tup = (line[0], line[1])

        library[line[2]] = tup
    return library


print(isbn_dictionary("books.csv"))

2 个答案:

答案 0 :(得分:0)

通过在f​​or循环之前添加next(file)来忽略第一行,然后在ISBN上调用.strip()

答案 1 :(得分:0)

只需对代码进行最少的修改:

def isbn_dictionary(filename):
    """docstring"""
    file = open(filename, "r")
    library = {}


    for line in file:
        line = line.split(",")
        if line[0]: # Only append if there is a value in the first column
            tup = (line[0], line[1])

            library[line[2].strip()] = tup # get rid of newlines in the key
    file.close() # It's good practice to always close the file when done. Normally you'd use "with" for handling files.
    return library


print(isbn_dictionary("books.csv"))

空字符串为 falsey ,因此,如果一行的第一行为空白,则不会将这些字符添加到您的library字典中。