2013-06-03 2 views
1

Затем genfromtxt метод numpy загружает ndarray из текстового файла. Однако, если текстовый файл пуст, метод будет поднял IOError в то время как я ожидал пустую ndarray:numpy # genfromtxt поднять IOError, пока файл txt пуст

IOError: End-of-file reached before encountering data.

Есть ли решение, чтобы получить пустой ndarray если текстовый файл пуста?

+1

Обновите NumPy. Ошибка была изменена на предупреждение: https://github.com/numpy/numpy/commit/72ab385d17d9067f97652aeae87a820f7de41298 –

ответ

2

Попробуйте использовать try блок возвращает пустой массив на ошибку:

try: 
    a = np.genfromtext("filename.txt") 
except IOError: 
    a = np.array([]) # Or np.empty or np.zeros... 
+0

Да, это работает. Но существует ли какой-то параметр 'genfromtxt', чтобы заставить это вести себя? – Eastsun

+0

Я не согласен, что это плохо. Функция должна возвращать данные, и если она не может, должна быть ошибка, поэтому она поднимает один. Это функциональность, которую я ожидал бы. Но, как вы видите на странице [документации] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html) такой опции нет. (Я признаю, что они не указывают, что происходит, когда файл пуст). – SethMMorton

Смежные вопросы