ValueError при чтении CSV в Python - PullRequest
       30

ValueError при чтении CSV в Python

0 голосов
/ 24 апреля 2019

У меня есть некоторые проблемы при выполнении некоторых простых задач ввода-вывода в Python, и я не могу найти решение ... Я думаю, это что-то довольно простое.

Я пытаюсь читать в CSV, используя csv reader,Сначала я хочу подсчитать количество строк, чтобы назначить пространство для массивов numpy, а затем я хочу прочитать фактические значения.

Этот метод вызывается в методе действия события кнопки в графическом интерфейсе tkinter.

Я сбрасываю файл, используя метод .seek (), но почему-то всегда получаю следующую ошибку:

Файл "...", строка 14, в read_csvдля строки в xy: ValueError: операция ввода-вывода для закрытого файла.

Я не могу понять, в чем проблема ...

Что сбивает с толку, так этоДело в том, что код работает нормально, когда я запускаю его в режиме отладки, но он не работает при запуске в обычном режиме.Я использую pyCharm, если это имеет значение.

import csv
import numpy as np

def read_csv(fileName):

    with open(fileName) as data:

        xy = csv.reader(data, delimiter=',')
        dim = sum(1 for cc in xy)
        x = np.zeros(dim)
        y = np.zeros(dim)
        data.seek(0)
        count = 0
        for row in xy:
            x[count] = row[0]
            y[count] = row[1]
            count = count + 1

    return x,y,count

EDIT:

Вот процедура вызова:

def clicked_ReadCSV():

    filename = "xy.csv"
    x,y,count = read_csv(filename)

##################################

root = tk.Tk()
root.title('Test')

f0 = tk.Frame()
lblFile = tk.Label(f0, text = "Enter input-file name with suffix:")
lblFile.pack(side = tk.LEFT)
entryFile = tk.Entry(f0, width = 60)
entryFile.pack(side = tk.LEFT)
bFile = tk.Button(f0, text = "Read File", command = clicked_ReadCSV)
bFile.pack(side = tk.LEFT)
entryFile.focus()
f0.pack()

Команда действия кнопки clicked_ReadCSV вызывает вышеописанную процедуру.

...