尝试使用csv导入单词列表(Python 2.7)

时间:2013-12-02 06:10:01

标签: python python-2.7 csv

import csv, Tkinter

with open('most_common_words.csv') as csv_file: # Opens the file in a 'closure' so that when it's finished it's automatically closed"
    csv_reader = csv.reader(csv_file) # Create a csv reader instance

    for row in csv_reader: # Read each line in the csv file into 'row' as a list
        print row[0] # Print the first item in the list

我正在尝试使用csv导入此常用单词列表。它继续给我同样的错误

for row in csv_reader: # Read each line in the csv file into 'row' as a list
Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

我尝试了几种不同的方法,但它们也没有用。有什么建议吗?

此外,该文件需要保存在哪里?可以和程序在同一个文件夹中吗?

2 个答案:

答案 0 :(得分:2)

您应始终以二进制模式(Python 2)或通用换行模式(Python 3)打开CSV文件。另外,请确保分隔符和引号字符为,",否则您需要另行指定:

with open('most_common_words.csv', 'rb') as csv_file:
    csv_reader = csv.reader(csv_file, delimiter=';', quotechar='"') # for EU CSV

您可以将文件保存在与程序相同的文件夹中。如果不这样做,您也可以提供open()的正确路径。如果你在Windows上,请务必使用原始字符串,否则反斜杠可能会欺骗你:open(r"C:\Python27\data\table.csv")

答案 1 :(得分:0)

您似乎在这里有一个带有一列的文件:

  

这是一个简单的单词列表。当我打开它时,它会打开Excel   一列500行500个不同的单词。

如果是这样,您根本不需要csv模块:

with open('most_common_words.csv') as f:
   rows = list(f)

请注意,在这种情况下,列表中的每个项目都会附加换行符,因此如果您的文件是:

apple
dog
cat

rows将为['apple\n', 'dog\n', 'cat\n']

如果你想剥去行尾,那么你可以这样做:

with open('most_common_words.csv') as f:
    rows = list(i.rstrip() for i in f)