python按文件夹内顺序逐个将txt文件内容对应写到csv

 如图所示,按照文件夹的顺序逐个将txt文件的内容对应写到csv中

两种方法:

例如:原数据有935个txt文件

第一种:不跳过 空txt 最终935条数据存储在csv中

第二种:跳过 空txt 最终853条数据存储在csv中

import  pandas as pd
import os
import csv
import natsort


data_path = 'F:/result_txt/1_3train'  # 你的txt文件存储路径,即txt所在文件夹
data_names = natsort.natsorted(os.listdir(data_path),alg = natsort.ns.PATH)  # 按照文件夹内的顺序排序
# data_names = os.listdir(data_path) # 按照文件夹默认的排序

# 第一种:
# 按顺序读取txt文件夹内的txt文件,将空的 txt 文件写入'NULL',存储在‘new_csv.csv’
with open('new_csv.csv', 'a', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for data_name in data_names:
        list1 = []
        try:
            tmp = pd.read_csv(os.path.join(data_path, data_name), encoding='gbk')
            # print(tmp.columns[0])
            list1.append(tmp.columns[0])
           
        except Exception as e:
            # print(e, type(e))
            if (isinstance(e, pd.errors.EmptyDataError)):
                list1.append('NULL')
        writer.writerow(list1)

csvfile.close()


# 第二种:
# 按顺序读取txt文件夹内的txt文件,将空的 txt 文件跳过, 存储在‘new_csv.csv’
for data_name in data_names:
    with open('new_csv.csv', 'a', newline='') as csvfile:
        writer = csv.writer(csvfile)
        try:
            tmp = pd.read_csv(os.path.join(data_path, data_name), encoding='gbk')
            writer.writerow(tmp)
        except Exception as e:
            #print(e, type(e))
            if (isinstance(e, pd.errors.EmptyDataError)):
                print("此处有空行文件,已跳过,读取下一个文件")
    csvfile.close()     

 

以下是一个示例代码,可以用Python文件夹内的txt文件批量转换为csv格式: ```python import os import csv # 定义函数将txt文件转换为csv文件 def txt_to_csv(txt_file, csv_file): with open(txt_file, 'r') as txt, open(csv_file, 'w', newline='') as csv_file: writer = csv.writer(csv_file) for line in txt: writer.writerow(line.strip().split()) # 定义函数批量转换文件夹内的txt文件 def batch_txt_to_csv(folder_path): # 遍历文件夹内的txt文件 for filename in os.listdir(folder_path): if filename.endswith('.txt'): # 构造txt文件csv文件的路径 txt_file = os.path.join(folder_path, filename) csv_file = os.path.join(folder_path, filename[:-4] + '.csv') # 调用txt_to_csv函数将txt文件转换为csv文件 txt_to_csv(txt_file, csv_file) print(f'{filename} 转换完成!') # 调用函数批量转换txt文件 folder_path = 'your_folder_path' batch_txt_to_csv(folder_path) ``` 在这个示例中,我们定义了两个函数:txt_to_csv()函数用于将单个txt文件转换为csv文件,batch_txt_to_csv()函数用于批量转换文件夹内的txt文件。我们使用os.listdir()方法遍历文件夹内的所有文件,然后判断文件名是否以'.txt'结尾,如果是则调用txt_to_csv()函数将其转换为csv文件。 在调用batch_txt_to_csv()函数时,您需要将'your_folder_path'替换为您实际的文件夹路径。请注意,以上代码仅适用于每行数据都是用空格分隔的情况。如果您的txt文件中使用了其他分隔符,您需要在txt_to_csv()函数中相应地调整split()方法的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值