файл не существует с использованием DATA_DIR и DATA_FILE? Почему? - PullRequest
1 голос
/ 10 апреля 2020

Когда я запускаю файл из моей школы, код выдает мне эту ошибку:

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

Файл и папка существуют на моем рабочем столе, но по какой-то причине я не могу просмотреть файл ... Я использую DATA_DIR и DATA_FILE переменные.

Можете ли вы помочь, чтобы код действительно находил и считывал содержимое папки / файла?

КОД:

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. и я считаю, что я импортировал все необходимые пакеты для этого.

1 Ответ

0 голосов
/ 12 апреля 2020

Трудно точно сказать, что происходит без вашего файла данных. Возможно, добавьте его к вопросу.

Ошибка, которую вы получаете «Ошибка токенизации данных. C Ошибка: Ожидаемые 2 поля в строке 3, пила 12» означает, что программа может найти файл, но есть проблемы с чтением.

Есть несколько возможных проблем, но невозможно определить, не увидев данные в файле. Проверьте следующее:

  1. Расширение .txt, а не .csv, поэтому pandas.read_csv может быть неправильным методом для чтения файла - это действительно вопрос того, что является формат файла.

  2. Разделителем файлов по умолчанию является запятая, но ваш файл может иметь другой разделитель, например пробел на вкладке. Можно попробовать с разными разделителями

data = pd.read_csv('file1.csv', sep='\t')
or
data = pd.read_csv('file1.csv', sep=' ')
В случае, если это файл CSV, в нем могут быть поврежденные строки, поэтому вы можете использовать следующее, чтобы пропустить их

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

...