return codecs.ascii_decode(input,self.errors)[0]

时间:2018-01-04 21:16:42

标签: python

我正在阅读csv格式的歌曲文件,我不知道我做错了什么。

myString.replace(/([^\/]+(?=#))/, '$1:')

这是错误:

import csv
import os
import random

file = open("songs.csv", "rU")
reader = csv.reader(file)

for song in reader:
    print(song[0], song[1], song[2])

file.close()

3 个答案:

答案 0 :(得分:0)

尝试

for song in [unicode(song, 'utf-8') for song in reader]:
    print(...)

答案 1 :(得分:0)

使用这段代码:

for song in reader:
    print( song[0], song[1],song[2])

在循环的每次迭代期间,您在reader中打印元素0,1和2。如果总共少于3个元素,这将导致(不同的)错误。

如果您不知道每行中至少有3个元素,则可以将代码包含在tryexcept块中:

with open("songs.csv", "r") as f:
    song_reader = csv.reader(f)
    for song_line in song_reader:
        lyric = song_line
        try:
            print(lyric[0], lyric[1], lyric[2])
        except:
            pass # ...or preferably do something better

值得注意的是,在大多数情况下,最好在with块内打开文件,如上所示。这消除了对file.close()的需求。

答案 2 :(得分:0)

您可以使用utf-8编码打开文件。

file = open("songs.csv", "rU", encoding="utf-8")