python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python将txt文件转换csv文件

python中将txt文件转换为csv文件的三种方法举例

作者:阿罗的小小仓库

对于大数据的处理基本都是以CSV文件为基础进行的,那么在进行深度学习的处理之前,需要先统一数据文件的格式,下面这篇文章主要给大家介绍了关于python中将txt文件转换为csv文件的三种方法,需要的朋友可以参考下

假设有一个文本文件 data.txt 内容如下:

Name, Age, City
John, 25, New York
Alice, 30, San Francisco
Bob, 28, Los Angeles

方法一、使用内置的 csv 模块:

import csv

# 读取txt文件
txt_file_path = 'data.txt'
csv_file_path = 'data.csv'

with open(txt_file_path, 'r') as txt_file, open(csv_file_path, 'w', newline='') as csv_file:
    # 创建CSV写入器
    csv_writer = csv.writer(csv_file)

    # 使用CSV读取器逐行读取txt文件
    csv_reader = csv.reader(txt_file)

    # 将每一行的内容写入CSV文件
    for row in csv_reader:
        csv_writer.writerow(row)

print(f"Successfully converted {txt_file_path} to {csv_file_path}.")

这个例子中,csv.reader用于逐行读取txt文件的内容,然后将其写入csv文件中,使用csv.writer。请注意,newline=' ' 参数用于避免在写入csv文件时产生额外的空行。

方法二、使用 pandas 库:

import pandas as pd

# 读取txt文件
txt_file_path = 'data.txt'
csv_file_path = 'data.csv'

# 使用pandas读取txt文件
df = pd.read_csv(txt_file_path, delimiter=', ')

# 将数据写入csv文件
df.to_csv(csv_file_path, index=False)

print(f"Successfully converted {txt_file_path} to {csv_file_path}.")

在这个例子中,pd.read_csv 函数用于读取txt文件,delimiter=', '  参数指定了逗号和空格作为分隔符。然后,df.to_csv 函数将数据写入csv文件。index=False 参数用于禁用写入文件时生成的索引列。

方法三、使用标准的文件读写操作

# 读取txt文件
txt_file_path = 'data.txt'
csv_file_path = 'data.csv'

with open(txt_file_path, 'r') as txt_file, open(csv_file_path, 'w', newline='') as csv_file:
    # 逐行读取txt文件
    for line in txt_file:
        # 假设txt文件中的字段是由逗号和空格分隔的
        fields = line.strip().split(', ')
        # 将字段以逗号分隔写入csv文件
        csv_file.write(','.join(fields) + '\n')

print(f"Successfully converted {txt_file_path} to {csv_file_path}.")

这个例子中,使用 open 函数打开txt和csv文件,逐行读取txt文件,然后将每一行的字段以逗号分隔写入csv文件。需要根据实际情况进行字段的分隔和处理。虽然这种方法相对于使用 csv 模块和 pandas 库来说更为基础,但在某些简单的情况下,可能是一种直接且有效的方式。

总体而言,使用 csv 模块和 pandas 库通常更为方便和灵活,尤其是在处理大型和复杂的数据集时。

附:Python实现多条.txt文本数据合并为.csv文件数据

import os
import csv
 
def file_name(file_dir):  
    for root, dirs, files in os.walk(file_dir):   
    #root返回当前目录路径;dirs返回当前路径下所有子目录;files返回当前路径下所有非目录子文件
        return root,dirs,files
 
fieldnames=['review','class']
 
if __name__=='__main__':
 
    csv_file=open("./merge.csv",'a+',newline='',encoding='utf-8')
    writer=csv.DictWriter(csv_file,fieldnames=fieldnames)
    writer.writeheader()
 
    file_dir = "E:/SmartTravelling/Code_bert_zhihu/THUCNews/THUCNews"
 
    root_0,dirs_0,_ = file_name(file_dir)
    
    for dir_0 in dirs_0:
        curdir=root_0+'/'+dir_0
        root_1,_,files= file_name(curdir)
 
        for line in files:
            line=root_1+'/'+line
            data=''
            for temp in open(line, 'r',encoding="utf-8").readlines():
                if temp !='/n':
                    data+= temp.strip() 
            
            writer.writerow({'review':data,'class':dir_0})
 
    csv_file.close()

总结

到此这篇关于python中将txt文件转换为csv文件的三种方法的文章就介绍到这了,更多相关python将txt文件转换csv文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文