当我从学校运行文件时,代码给了我这个错误:
error> reading data fileError tokenizing data. C error: Expected 2 fields in line 42, saw 3
文件和文件夹都存在于我的桌面中,但由于某种原因我无法查看文件...我正在使用DATA_DIR
和DATA_FILE
变量。
您能帮忙,让代码找到并读取文件夹/文件的内容吗?
CODE:
import requests
import nltk
import textblob
import os
import glob
import csv
import pandas as pd
import sys
DEBUGGING = True
TOP_MOST = 10
#
# Stopwords file:
stopwords = open("english-stop-words-large.txt")
stopwords = stopwords.read()
#print(stopwords)
DATA_DIR = 'DM.CW2'
DATA_FILES = 'benjamin-bunny.txt'
# txtFile = open("kim.txt")
# txtFile = txtFile.read()
try:
df = pd.read_csv((DATA_FILES), na_filter=False)
except Exception as x:
print ('error> reading data file' + str(x))
sys.exit()
for (j, myfile) in zip(range(len(DATA_DIR)), DATA_FILES):
with open( myfile) as f:
raw_verse = f.read()
f.close()
if (DEBUGGING):
print('raw_verse=', raw_verse)
print('file=', myfile)
freq_words = [dict() for j in range(len(DATA_FILES))]
verse = textblob.TextBlob(raw_input().decode('utf-8'))
if DEBUGGING:
print('verse=', verse)
words = {}
for w in verse.word_counts:
if w not in stopwords:
words[w] = verse.word_counts[w]
if DEBUGGING:
print(words)
sorted_words = sorted(words, key=words.__getitem__, reverse=True)
for (i, w) in zip(range(TOP_MOST), sorted_words):
freq_words[j][w] = verse.word_counts[w]
print(i, w, verse.word_counts[w])
# For polarity and subjectivity:
testimonial = textblob.TextBlob(words)
print(testimonial.sentiment)
包含.txt文件的文件夹称为DM.CW2。它在我的桌面上。文件.txt文件也位于此文件夹中。
我正在使用python 2.7。而且我相信我为此导入了所有必需的软件包。
如果没有您的数据文件,很难确切地说出正在发生什么。也许将其添加到问题中。
您收到的错误是“错误标记数据。C错误:第3行中应该有2个字段,看到12”,这表明程序能够找到文件,但在读取文件时遇到问题。
存在一些可能的问题,但是如果不查看文件中的数据就无法分辨。检查以下内容:
扩展名是.txt
而不是.csv
,因此pandas.read_csv
可能不是读取文件的正确方法-这实际上是文件格式的问题。
默认文件分隔符是逗号,但是您的文件可能具有不同的分隔符,例如制表符的空格。您可以尝试使用其他分隔符
data = pd.read_csv('file1.csv', sep='\t')
or
data = pd.read_csv('file1.csv', sep=' ')
data = pd.read_csv('file1.csv', error_bad_lines=False)