如何按字符串的一部分筛选csv中的列并将其保存在ex中

2024-04-24 23:56:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个文件夹中有一个tar文件,里面有CSV,没有标题。我需要解压/解压文件夹中的这些文件,提取所有CSV,然后使用特定字符串“INCM”过滤第12列,然后将其保存在新的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)

Tags: 文件csv数据inimport文件夹ostar
1条回答
网友
1楼 · 发布于 2024-04-24 23:56:25

这将用于编写Excel工作表:

import xlsxwriter

    workbook = xlsxwriter.Workbook('test.xlsx')
    worksheet = workbook.add_worksheet()

    row = 0
    column = 0

    keep = []

    for line in keep:
        line = line.split(',')  # convert each row as a list
        for cell in line: 
            worksheet.write(row, column, cell)
            column += 1  # for moving to the next cell 
        row += 1  # for moving to the next row

    workbook.close()

相关问题 更多 >