使用DATA_DIR和DATA_FILE不存在文件吗?为什么?

问题描述 投票:1回答:1

当我从学校运行文件时,代码给了我这个错误:

error> reading data fileError tokenizing data. C error: Expected 2 fields in line 42, saw 3

文件和文件夹都存在于我的桌面中,但由于某种原因我无法查看文件...我正在使用DATA_DIRDATA_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。而且我相信我为此导入了所有必需的软件包。

python csv directory data-science filenotfoundexception
1个回答
0
投票

如果没有您的数据文件,很难确切地说出正在发生什么。也许将其添加到问题中。

您收到的错误是“错误标记数据。C错误:第3行中应该有2个字段,看到12”,这表明程序能够找到文件,但在读取文件时遇到问题。

存在一些可能的问题,但是如果不查看文件中的数据就无法分辨。检查以下内容:

  1. 扩展名是.txt而不是.csv,因此pandas.read_csv可能不是读取文件的正确方法-这实际上是文件格式的问题。

  2. 默认文件分隔符是逗号,但是您的文件可能具有不同的分隔符,例如制表符的空格。您可以尝试使用其他分隔符

data = pd.read_csv('file1.csv', sep='\t')
or
data = pd.read_csv('file1.csv', sep=' ')
  1. 如果是CSV文件,则可能会有损坏的行,因此您可以使用以下内容跳过它们

data = pd.read_csv('file1.csv', error_bad_lines=False)

© www.soinside.com 2019 - 2024. All rights reserved.