python读取文件夹内容写入Excel

import os
import openpyxl

# 指定要读取的主文件夹路径
main_folder_path = '//'

# 创建一个新的Excel工作簿和工作表
workbook = openpyxl.Workbook()
sheet = workbook.active

# 添加表头
sheet['A1'] = '列名'
sheet['B1'] = '列名'
sheet['C1'] = '列名'

# 创建一个空列表来存储行号数据
line_numbers = []

def find_txt_files(folder):
    txt_files = []

    # 获取文件夹中的所有文件和子文件夹
    items = os.listdir(folder)

    for item in items:
        item_path = os.path.join(folder, item)

        if os.path.isfile(item_path) and item.endswith('.txt'):
            # 如果是txt文件,将其添加到列表中
            txt_files.append(item_path)
        elif os.path.isdir(item_path):
            # 如果是子文件夹,递归查找其中的txt文件
            txt_files.extend(find_txt_files(item_path))

    return txt_files



# 确保主文件夹存在
if not os.path.exists(main_folder_path):
    print(f"主文件夹 '{main_folder_path}' 不存在。")
else:
    # 查找所有txt文件
    txt_files = find_txt_files(main_folder_path)
    # # 查找所有sol文件
    # sol_files = find_sol_files(main_folder_path)

    if not txt_files:
        print(f"主文件夹 '{main_folder_path}' 及其子文件夹中没有txt文件。")
    else:

        # 将.txt文件的内容和文件路径写入Excel表格
        for i, txt_file in enumerate(txt_files):
            with open(txt_file, 'r', encoding='utf-8') as file:
                file_contents = file.read()
            
            # 获取文件名和文件路径
            file_name = os.path.basename(txt_file)
            file_path = os.path.abspath(txt_file)
             # 使用os.path.split函数来分割文件路径,然后去掉前五级目录
            _, _, remaining_path = file_path.partition(os.path.sep)
            _, _, remaining_path = remaining_path.partition(os.path.sep)
            _, _, remaining_path = remaining_path.partition(os.path.sep)
            _, _, remaining_path = remaining_path.partition(os.path.sep)
            _, _, remaining_path = remaining_path.partition(os.path.sep)
            # 去掉最后一级目录
            remaining_path, _ = os.path.split(remaining_path)


            
            
            #处理漏洞名称
            file_name=file_name.split(".")[0]
            contract_name=file_name.split("_")[0]
            file_name=file_name.split("_")[1]
            file_name=file_name[:-4]

            file_path = os.path.join(remaining_path, contract_name+'_'+file_name +'.sol')
            sheet.cell(row=i + 2, column=1, value=file_path)



            #处理漏洞行数
            # 提取行号数据并添加到列表中
            lines = file_contents.split('\n')
            for line in lines:
                # 如果行包含"line_number:",则提取行号并添加到列表中
                if "line_number:" in line:
                    line_number = int(line.split(":")[1].strip())
                    line_numbers.append(line_number)

            sheet.cell(row=i + 2, column=3, value=', '.join(map(str, line_numbers)))
            # 清空行号数据列表以处理下一个文件
            line_numbers = []


            # 将漏洞名、行数写入Excel表格的不同列
            sheet.cell(row=i + 2, column=2, value=file_name)

# 保存Excel文件
excel_file_path = 'output1.xlsx'
workbook.save(excel_file_path)

print(f"已将数据保存到 '{excel_file_path}' 中。")

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用Python遍历文件夹里的Excel文件,可以使用os模块中的walk函数,例如:for root, dirs, files in os.walk("/path/to/directory"): for filename in files: if filename.endswith(".xlsx"): filepath = os.path.join(root, filename) # do something with filepath ### 回答2: 在Python中,可以使用os模块和pandas库来遍历文件夹中的Excel文件。 首先,导入所需的模块: ```python import os import pandas as pd ``` 然后,指定你要遍历的文件夹路径: ```python folder_path = '文件夹路径' ``` 接下来,使用os模块的walk函数遍历文件夹中的所有文件和子文件夹: ```python for root, dirs, files in os.walk(folder_path): for file in files: file_path = os.path.join(root, file) # 在这里进行Excel文件的处理 ``` 在遍历过程中,每个Excel文件的路径由文件夹路径和文件名组成。可以使用pandas库的read_excel函数读取每个Excel文件,并进行进一步的处理: ```python df = pd.read_excel(file_path) # 使用pandas读取Excel文件 # 在这里进行文件处理或数据分析等操作 ``` 如果需要遍历多个工作表,可以使用pandas库的ExcelFile对象来处理: ```python excel_file = pd.ExcelFile(file_path) # 创建ExcelFile对象 for sheet_name in excel_file.sheet_names: df = excel_file.parse(sheet_name) # 逐个解析工作表 # 在这里进行文件处理或数据分析等操作 ``` 最后,根据具体需求,对每个Excel文件进行相应的操作或分析。 以上就是使用Python遍历文件夹中的Excel文件的方法。根据具体情况,可以对代码进行适当修改并添加错误处理等功能。 ### 回答3: 要用Python遍历文件夹中的Excel文件,可以使用os和pandas库。 首先,需要导入所需的库: import os import pandas as pd 然后,定义一个函数来遍历文件夹中的所有文件: def traverse_folder(folder_path): for root, dirs, files in os.walk(folder_path): for file in files: if file.endswith('.xlsx') or file.endswith('.xls'): #判断文件是否是Excel文件,可以根据实际情况修改后缀名 file_path = os.path.join(root, file) #获取文件路径 # 进行操作,例如读取Excel文件 df = pd.read_excel(file_path) # 在这里可以添加你需要对Excel文件的具体操作 最后,调用这个函数来遍历指定文件夹: folder_path = '文件夹路径' #替换为实际文件夹的路径 traverse_folder(folder_path) 以上代码会遍历指定文件夹及其子文件夹中的所有Excel文件,并对其进行操作。你可以根据实际需求修改代码,添加其他操作,如读取Excel数据、写入数据、数据处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值