У меня есть некоторые проблемы при выполнении некоторых простых задач ввода-вывода в 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 вызывает вышеописанную процедуру.