#python #csv #numpy
#python #csv #numpy
Вопрос:
Я пытаюсь просмотреть свой каталог и сгенерировать массив из каждого файла csv, заканчивающийся на «_chisqtype2_sheet.csv», и добавить его в список chisq2data. Все работает нормально, за исключением того, что код считает, что последний файл в H пуст. Я попытался добавлять и вычитать файлы и обнаружил, что независимо от того, какой файл является последним, код всегда обнаружит, что он пуст.
H=os.listdir(".")
H= [x for x in H if x.endswith("_chisqtype2_sheet.csv")]
chisq2data = []
for fname in H:
chi2 = np.loadtxt(fname, delimiter=",", skiprows=0)
chisq2data.append(chi2)
print fname
print chi2
Вывод fname показывает, что все файлы найдены.
При печати chi2 отображаются правильные массивы для первых файлов и пустой массив [] для последнего файла.
Комментарии:
1. Вы абсолютно уверены, что там нет никаких пустых файлов? Сколько у вас есть CSV-файлов, которые соответствуют этому условию? Что произойдет, если у вас есть только один файл, который, безусловно, не пуст?
2. Что такое «последний» файл? Что произойдет, если вы перетасуете записи в H, запустите свой цикл, снова перетасуете их и запустите его снова?
3. Все ли ваши файлы данных сохранены с одинаковой кодировкой? Это странная проблема. Кроме того, пока я хватаюсь за соломинку, присутствуют ли все ожидаемые имена файлов (и никаких дополнительных пустых имен файлов) в
print(H)
?4. Я попробовал приведенный выше код и не смог воспроизвести это поведение. Он правильно печатает массивы, независимо от того, сколько существует файлов csv (включая тестирование всего с 1 файлом csv). Пробелы не появились. Загадочно.