将txt文件转换为csv文件的几种方法(Python实现) 您所在的位置:网站首页 文本转换成表格功能怎么用不了 将txt文件转换为csv文件的几种方法(Python实现)

将txt文件转换为csv文件的几种方法(Python实现)

2024-06-28 14:34| 来源: 网络整理| 查看: 265

文件的两种操作方式

①使用open()方法

Python open()方法用于打开一个文件,并返回文件对象。 在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError。 注意:使用open()方法一定要保证关闭文件对象,即调用close()方法。 open()函数常用形式是接收两个参数:文件名(file)和模式(mode)。

②使用with语句

使用with语句打开文件有几个重要的好处: 自动关闭文件: with语句创建了一个上下文管理器,确保在代码块执行结束时自动关闭文件。这样可以避免忘记手动关闭文件的错误,同时确保及时释放资源。 异常处理: with语句在文件操作中提供了异常处理的机制。如果在文件操作过程中发生异常,with语句会确保文件被正确关闭,防止文件资源泄漏。 简化代码结构: 使用with语句可以简化代码结构,避免显式地调用close方法。这使得代码更加清晰和易读。

Python内置的csv模块

Python内置了一个csv模块,该模块提供了用于读取和写入CSV文件的功能。CSV(Comma-Separated Values)是一种简单的文本格式,其中数据字段由逗号或其他分隔符分隔。

以下是csv模块的一些主要功能:

csv.reader: 用于读取CSV文件。可以指定不同的分隔符,如逗号、制表符等。语法:csv.reader(csvfile, delimiter=',', dialect='excel', **fmtparams) csvfile: 一个打开的文件对象或者支持迭代的对象(例如,文件的每一行作为一个字符串元素的列表)。 delimiter: 可选参数,用于指定 CSV 文件中字段之间的分隔符。默认为逗号 ,。 dialect: 可选参数,用于指定 CSV 文件的方言(例如,CSV 文件使用的分隔符等)。如果未指定,默认为 ‘excel’。 fmtparams: 可选的关键字参数,用于覆盖方言的一些参数设置。 import csv with open('data.txt', 'r') as file: csv_reader = csv.reader(file) for row in csv_reader: #读取一行数据,以逗号进行分隔 print(row) #返回一个列表

csv.writer: 用于写入CSV文件。同样,可以指定分隔符。 import csv data = [['Name', 'Age', 'City'], ['John', 25, 'New York'], ['Alice', 30, 'San Francisco'], ['Bob', 22, 'Los Angeles']] with open('example.csv', 'w', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(data) csv.DictReader和csv.DictWriter: 这两个类用于读取和写入字典形式的数据,其中字典的键通常是CSV文件中的列标题。语法:csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)csvfile: 一个打开的文件对象或者支持写入的对象。 fieldnames: 一个包含字典键的列表,指定 CSV 文件的列顺序和列标题。 restval: 可选参数,用于指定字典中缺少的键对应的默认值。默认为空字符串 ‘’。 extrasaction: 可选参数,指定在写入字典时,是否忽略额外的键(‘ignore’),将其视为错误(‘raise’)或将其添加到输出中(‘write’)。 dialect: 可选参数,用于指定 CSV 文件的方言(例如,CSV 文件使用的分隔符等)。如果未指定,默认为 ‘excel’。 *args 和 **kwds: 其他可选的位置参数和关键字参数,用于配置方言的其他参数。 import csv with open('example.csv', 'r') as file: csv_reader = csv.DictReader(file) for row in csv_reader: print(row) data = [{'Name': 'John', 'Age': 25, 'City': 'New York'}, {'Name': 'Alice', 'Age': 30, 'City': 'San Francisco'}, {'Name': 'Bob', 'Age': 22, 'City': 'Los Angeles'}] with open('example.csv', 'w', newline='') as file: fieldnames = ['Name', 'Age', 'City'] csv_writer = csv.DictWriter(file, fieldnames=fieldnames) csv_writer.writeheader() #写入标题行 csv_writer.writerows(data) #写入字典数据

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

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

方法一:使用标准的文件读写操作 # 读取文本文件内容 输出到CSV文件 with open('data.txt', 'r') as fi, open('data.csv', 'w', newline='') as fo: # 逐行读取txt文件 for line in fi: # 假设txt文件中的字段是由逗号和空格分隔的 fields = line.strip().split(', ') # 将字段以逗号分隔写入csv文件 fo.write(','.join(fields) + '\n')

总结: newline=''参数的作用: 在使用open函数打开文件时,newline='‘参数是为了确保在不同操作系统上正确处理换行符。 在Windows系统上,文本文件的行尾通常由两个字符组成:回车符(\r)和换行符(\n),即"\r\n"。而在类Unix 系统(如Linux和macOS)上,行尾只使用换行符(\n),即"\n"。 在Python中,open函数默认使用操作系统的默认行尾符号。然而,CSV格式通常期望行尾符是\n,而不是\r\n。如果不使用newline=’‘参数,可能会导致在某些情况下生成的CSV文件在不同平台上的行尾符不一致,可能会引起问题。 因此,使用newline=’'参数可以确保在写入CSV文件时,Python会统一使用\n作为行尾符,从而避免潜在的问题。这样做是为了提高跨平台兼容性。

方法二:使用内置的csv模块 import csv with open('data.txt', 'r') as fi, open('data.csv', 'w', newline='') as fo: # 使用CSV读取器逐行读取txt文件 csv_reader = csv.reader(fi) # 创建CSV写入器 csv_writer = csv.writer(fo) # 将每一行的内容写入CSV文件 for row in csv_reader: csv_writer.writerow(row) #writerow()方法是csv.writer对象的一个方法,用于将一行数据写入文件。 方法三:使用pandas库 import pandas as pd # 使用pandas读取txt文件 df = pd.read_csv('data.txt', delimiter=', ') # 将数据写入csv文件 df.to_csv('data.csv', index=False)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有