首页 > 解决方案 > 如何从路径的用户那里获取输入,我必须将多个 excel 文件头和文件名合并到 python 中的其他 excel 文件中

问题描述

这是我一直在处理的代码,但不确定如何将它们合并到一个新的 excel 文件中并获取标题和文件名。

import os
import xlrd
 
Folder_path = input ("Enter the file path :")


def listDir(dir):
    fileNames = os.listdir(dir)
    
    loc = input ("Enter the path of file + filename :")

    wb = xlrd.open_workbook(loc) 
    sheet = wb.sheet_by_index(0) 

    # For row 0 and column 0 
    sheet.cell_value(0, 0) 

    for i in range(sheet.ncols): 
        print(sheet.cell_value(0, i))
    
    for filename in fileNames:
        print(filename + sheet.cell_value(0, i))
        
if __name__ == '__main__':
    listDir(Folder_path)

从这段代码中,我可以获得头值和文件名,但我希望如图所示放置,它应该在新的 excel 文件中打印该特定文件的文件名和输出头。

输出应如下 https://i.stack.imgur.com/7bXoE.png

在我得到文件名后,我想获取每个文件的标题并放入新的 excel 文件,它应该显示名称文件和标题。

标签: pythonexcelfilenames

解决方案


这是其中之一:

import os
from pathlib import Path
import xlrd
import pandas as pd

def listDir(inputdir):
    allheaders=[]
    fileNames = os.listdir(inputdir)
    
    for filename in fileNames:
        headers=[filename]
        loc = os.path.join(Folder_path, filename)

        wb = xlrd.open_workbook(loc) 
        sheet = wb.sheet_by_index(0) 

        for i in range(sheet.ncols):
            headers.append(sheet.cell_value(0, i))
           
        allheaders.append(headers)
    return allheaders

Enter_path =input("Enter the file path :")
Folder_path = Path(Enter_path)  

allheaders=listDir(Folder_path)
    
df=pd.DataFrame(allheaders)
df.to_excel("ListOfHeaders.xlsx",header=False, index=False)

推荐阅读