Форум сайта python.su
Доброго времени суток.
Просьба для опытных ребят, подсказать, как сделать с чего хотя бы начать..
Задача:
- Имеем несколько файлов csv, в каждом есть информация, в ячейках R1C1, R2C1 (нужны грубо говоря для оглавления информации) и ячейки с R4C1 и вниз R8, R9 и т.д. (это уже сама информация. В некоторых файлах 1 строка, в каких-то по 50).
Так вот нужно скопировать эти данные из всех excel-файлов в один, грубо говоря просто в столбик, чтобы информация для друг за другом.
Имеется Python 3, Anaconda.
p.s. - Понимаю, что эта тема из серии “парень, кури форум.”
Я так и сделаю, правда, но времени уже почти не осталось. Скоро эти несколько файлов превратятся в тысячи.
Пайтон я изучаю примерно 2 недели, на Codecadamy прошёл только 33%.. Начитавшись функционала всяких xlrd, xlwt и т.п. - окончательно запутался.
Офлайн
Допустим, чтение входного файла.
import xlrd
rb = xlrd.open_workbook('d: /final.xls', formatting_info=True)
sheet = rb.sheet_by_index(0)
for rownum in range(sheet.nrows):
row = sheet.row_values(rownum)
for c_el in row:
print (c_el)
Понимаю этот отрывок примерно на 80%.
1) Как допустим сделать так, чтобы он брал все файлы с расширением .csv ? Ну или на крайняк .xls.
2) Почему при компиляции постоянно ругается на :
File “F:\Soft\Anaconda3\lib\site-packages\xlrd\__init__.py”, line 114, in open_workbook
with open(filename, “rb”) as f:
Отредактировано L1pton (Дек. 12, 2017 13:58:07)
Офлайн
L1ptonВот так.
1) Как допустим сделать так, чтобы он брал все файлы с расширением .csv ?
import glob with open("out.txt","w") as out: for i in glob.glob("*.csv"): with open(i,"r") as f: for j in range(4): f.readline() out.write(f.read())
L1ptonПитон не может ругаться при компиляции. Он вообще не компилирует.
Почему при компиляции постоянно ругается на :
import glob from fileinput import input as inp with open("out.txt","w") as out, inp(files=glob.glob("*.csv")) as in_file: for line in in_file: if in_file.filelineno()>4: out.write(line)
Отредактировано doza_and (Дек. 12, 2017 21:04:36)
Офлайн
L1ptonНужно разделить задачу на несколько независимых друг от друга задач. То есть обработка одного файла не должна знать про то, что их тысячи. И перебор тысячи файлов не должен знать, что с ними будет проводиться обработка.
Скоро эти несколько файлов превратятся в тысячи.
Офлайн