У меня есть tar-файлы в папке, в которой есть CSV и нет заголовков. Мне нужно распаковать / разархивировать эти файлы в папке, извлечь все файлы CSV, а затем отфильтровать столбец № 12 с определенной строкой «INCM», а затем сохранить его в новом Excel.
Я мог бы извлечь один файл tar и отфильтровать данные в CSV. Но мне не удается кое-где повторить один и тот же цикл в задачах Untar и Filter. Благодаря этому я могу распаковать / разархивировать один файл в этой папке, но не могу сделать то же самое для других файлов в этой папке и добавить данные в Excel. Кроме того, я застрял, как сохранить данные в Excel, так как мои входные данные из CSV.
import tarfile
import os
import csv
workdir = 'C:/Rajhesh/Python Exercise/OSLA/'
datadir = workdir + 'Input/'
os.chdir(datadir)
files = os.listdir(datadir)
for fname in files:
if (fname.endswith("tar.gz")):
tar = tarfile.open(fname, "r:gz")
tar.extractall()
tar.close()
elif (fname.endswith("tar")):
tar = tarfile.open(fname, "r:")
tar.extractall()
tar.close()
column_nbr = 12
keep = []
with open(fname, 'r') as my_file:
reader = csv.reader(my_file)
for row in reader:
print(row)
IM = row[column_nbr]
if "INCM" in IM:
keep.append(row)
with open('filtered.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(keep)