想写一个能获得文件夹内所有文件名字,并写入Excel的脚本

path=r"D:\各种模\选股结果"
os.listdir(path)
['ipynb_checkpoint','module.ipynb','文件夹1','文件夹2','表格2.xlsx']

img

我们也可以对os.listdir()函数的结果进行筛选,将目录排除在外,只保留文件名。

from openpyxl import Workbook
import os

#定义函数:功能为获取到的文件列表写入excel文件。
#接收文件列表作为参数,并根据使用的操作系统决定存储路径(虽然一般没有必要,但是在指定路径下的存储需要使用此功能)
def write_in(obj_lst, path = os.getcwd(), plat = os.sys.platform):
    wb = Workbook()#新建工作簿
    sht = wb.active#激活工作表
    for i in range(len(obj_lst)):
        sht[f'A{i+1}'] = obj_lst[i]#将文件名依次存储在最左边一列中
    if plat == 'darwin':#判断系统
        save_path = f'{path}/ReadMe.xlsx'
    else:
        save_path = f'{path}\\ReadMe.xlsx'
    wb.save(save_path)#保存文件
    print(f'已完成写入。\nexcel文件路径为{save_path}')#提示完成进度和文件保存位置
    return save_path

#定义函数:获取指定目录下的所有文件名
def get_obj(path):
    names = os.listdir(path)
    files = []
    for i in names:
        if '.' in i:
            files.append(i)
    return files

#定义函数:与用户交互
def inter():
    path = input('请输入要检索的目录的绝对路径\n>>[')
    write_in(get_obj(path))

#调用函数
if __name__ == '__main__':
    inter()

如果您所说的“文件”也包含目录(即文件夹)的话,请使用如下代码:

from openpyxl import Workbook
import os
def write_in(path, obj_lst, plat):
    wb = Workbook()
    sht = wb.active
    for i in range(len(obj_lst)):
        sht[f'A{i+1}'] = obj_lst[i]
    if plat == 'darwin':
        save_path = f'{path}/ReadMe.xlsx'
    else:
        save_path = f'{path}\\ReadMe.xlsx'
    wb.save(save_path)
    print(f'已完成写入。\nexcel文件路径为{save_path}')
    return save_path
def get_obj(path):
    names = os.listdir(path)
    files = []
    for i in names:
        files.append(i)
    return files
def inter():
    path = input('请输入要检索的目录的绝对路径\n>>[')
    write_in(os.getcwd(), get_obj(path), os.sys.platform)
inter()

你可以使用 Python 的 os 模块来获取文件夹中的文件名。

import os

# 获取文件夹中的文件名
folder = '/path/to/folder'
filenames = os.listdir(folder)

print(filenames)

然后,你可以使用 Python 的 openpyxl 库来写入 Excel 文件。例如:

import openpyxl

# 创建新的 Excel 文件
workbook = openpyxl.Workbook()

# 获取工作表
worksheet = workbook.active

# 循环文件名列表并写入工作表
for i, filename in enumerate(filenames):
    cell = worksheet.cell(row=i+1, column=1)
    cell.value = filename

# 保存 Excel 文件
workbook.save('filenames.xlsx')

可以使用 os 模块中的 listdir() 函数来获取文件夹中的所有文件名。然后,你可以使用 pandas 模块中的 DataFrame 对象来创建一个 Excel 表格。你可以使用 pandas 中的 to_excel() 函数将数据写入表格中。


下面是一个示例代码,它获取文件夹中的所有文件名并将它们写入一个名为 "file_names.xlsx" 的 Excel 表格中:

import os
import pandas as pd

# 获取文件夹中的所有文件名
folder_path = '/path/to/folder'
file_names = os.listdir(folder_path)

# 将文件名存储在 pandas DataFrame 中
df = pd.DataFrame(file_names, columns=['File Name'])

# 将数据写入 Excel 表格
df.to_excel('file_names.xlsx', index=False)
import os
os.system('python -m pip install xlwt')
import xlwt
book = xlwt.Workbook(encoding='utf-8',style_compression=0)
sheet = book.add_sheet('test',cell_overwrite_ok=True)
col = ('列①','列②','列③','列④','列⑤','列⑥','列⑦','列⑧')
for i in range(0,8):
    sheet.write(0,i,col[i])

datalist = [['test'],['test']]
type(datalist)
path=r""#dir
pathl=os.listdir(path)
pathl
type(pathl)
pathl1=[]
pathl1.append(pathl)
pathl1
#pathl=[pathl]
#pathl='['+pathl+']'
pathl1[0]
for i in range(0,1):
        data = pathl1[i]
        for j in range(0,12):
            sheet.write(i+1,j,data[j])

savepath = path+'co0l.xls'
book.save(savepath)


img

如果我的这个文件夹内的文件全是txt文件,并且每天更新,并且我想把每个文件内的内容写入这个excel里,文件内容生成一列,并在后两列按日期和文件名,分别对应