如何从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"))
答案 0 :(得分:0)
通过在for循环之前添加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
字典中。