如何把文件夹内,文本文件遍历出来

如何通过python把文件夹内所有txt文件遍历到一个Excel里。并且按每个文件的名字和文件生成时间作为备注一和备注二。txt文件内的内容统一格式:汉字、括号、内为6位数字。

该回答引用GPTᴼᴾᴱᴺᴬᴵ
你可以使用Python内置的 os 和 glob 模块来遍历文件夹内的所有txt文件,然后使用 pandas 模块将它们写入Excel文件中。以下是一个基本的示例代码:

import os
import glob
import pandas as pd

# 文件夹路径
folder_path = "your/folder/path/"

# 遍历文件夹内的所有txt文件
txt_files = glob.glob(os.path.join(folder_path, "*.txt"))

# 创建一个DataFrame来保存文件内容和备注
df = pd.DataFrame(columns=["文件名", "生成时间", "内容"])

# 遍历每个txt文件,将内容读取到DataFrame中
for txt_file in txt_files:
    with open(txt_file, "r", encoding="utf-8") as f:
        content = f.read()
        
    # 从文件名中获取备注信息
    file_name = os.path.basename(txt_file)
    remark1 = file_name
    remark2 = str(os.path.getmtime(txt_file))
    
    # 将文件名、生成时间、内容添加到DataFrame中
    df = df.append({"文件名": file_name, "生成时间": remark2, "内容": content}, ignore_index=True)

# 将DataFrame写入Excel文件
excel_file = "output.xlsx"
df.to_excel(excel_file, index=False)


上述代码中,os.path.join 用于构建文件路径,glob.glob 用于获取指定目录下的所有txt文件,pandas.DataFrame 用于保存文件内容和备注,os.path.basename 用于获取文件名,os.path.getmtime 用于获取文件的生成时间,pandas.DataFrame.to_excel 用于将DataFrame写入Excel文件。
·
注意,如果txt文件内的内容格式不一致或不符合要求,可能会导致代码运行出错。如果需要更加严格的内容匹配,可以使用正则表达式来匹配文件内容。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这篇文章:解决移动桌面文件夹和文档文件夹时出现两个文件夹合并的问题
  • 除此之外, 这篇博客: python对txt文件的读写、覆盖写、追加内容、内容按列排序、内容去重中的 2.txt文件的写 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    写文件demo:这个也可以是覆盖写文件的格式,参数用w

    with open('test.txt', 'w') as writers: # 打开文件
        a = 'xxx'
        writers.write(a) # 将内容写到文件中
    writers.close() # 关闭文件,此处可以理解为保存

    在一个文件尾部追加新内容demo:

    with open('test.txt', 'a+') as writers: # 打开文件
        a = 'xxx'
        b = 'yyy'
        writers.write(a + ‘,’ + b) # 将内容追加到到文件尾部
        #如果要按行写入,我们只需要再字符串开头或结尾添加换行符'\n'
        writers.write(a + '\n')
        # 如果想要将多个变量同时写入一行中,可以使用writelines()函数,要求将传入的变量写成一个list:
        writers.writelines([a, ',', b])

    读写追加的主要区别,体现在open()函数中的mode参数上,关于open()的mode参数:

    ‘r’:读
    ‘w’:写, 覆盖写
    ‘a’:追加
    ‘r+’ == r+w(可读可写,文件若不存在就报错(IOError))
    ‘w+’ == w+r(可读可写,文件若不存在就创建)
    ‘a+’ ==a+r(可追加可写,文件若不存在就创建)
    对应的,如果是二进制文件,就都加一个b就好啦:
    ‘rb’  ‘wb’  ‘ab’  ‘rb+’  ‘wb+’  ‘ab+’

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

可以递归遍历下,也就是从根目录出发,调用自身或者文件列表