将xls文件名添加到python中的列

时间:2017-06-29 07:29:38

标签: python excel

我有一些代码为.csv执行此任务(感谢Michal K的帮助)。

关于如何将其更改为在.xls文件而不是.csv文件目录上工作的任何想法?

import csv
import os

for file_name in os.listdir("c:/projects/files"):
    with open(file_name,'r') as csvinput:
        reader = csv.reader(csvinput)

        all = []
        row = next(reader)
        row.append('FileName')
        all.append(row)

        for row in reader:
            row.append(file_name)
            all.append(row)

    with open(file_name, 'w') as csvoutput:
        writer = csv.writer(csvoutput, lineterminator='\n')
        writer.writerows(all)

2 个答案:

答案 0 :(得分:0)

Excel电子表格比CSV文件稍微复杂一些,因此我建议使用导入的模块,例如openpyxl

这允许您从文件中获取工作表(选项卡),并根据需要操作列和行。

一般程序结构如下所示:

for file_name in os.listdir("c:/projects/files"):
    if file_name.endswith('.xls'):
        workbook = openpyxl.load_workbook(file_name)

        # Get worksheets
        # Manipulate columns and rows

        workbook.save(file_name)

有一个关于使用openpyxl here

的非常好的教程

答案 1 :(得分:0)

用于读写excel和csv文件,pandas非常方便

import pandas as pd

CSV

csv_data = pd.read_csv(csv_filename, header=0) # you can define the exact csv format with further arguments
csv_data['filename'] = csv_filename  #adds a column with the filename

的excel

excel_data = pd.read_excel(excel_filename)
excel_data['filename'] = excel_filename

出口

csv_data.to_csv(output_csv)
excel_data.to_excel(output_excel)

您也可以将csv导出为ex​​cel,反之亦然

excel_data.to_csv(output_excel_csv)
csv_data.to_excel(output_csv_excel)