python 循环读取txt文档 并转换成csv的方法

下面是使用Python循环读取txt文档并转换成CSV的攻略:

1. 确定文件路径和文件名

首先,要确定你的TXT文件的路径和名称,以及你转换后要保存CSV文件的路径和名称。在本文中,我们将假设 TXT 文件名为 example.txt,TXT文件所在的目录为 ./data/,我们将保存转换后的 CSV 文件到 ./output/ 目录下,命名为 output.csv

2. 导入需要使用的 Python 库

Python 中有一些库可以协助我们进行 TXT 到 CSV 的转换,其中 pandas 是非常流行的数据处理库,可以帮助我们读取和写入 CSV 文件。

import pandas as pd

3. 读取 TXT 文件

在 Python 中,我们可以使用 open() 函数来打开一个文件,参数包括文件名和打开方式('r' 代表只读模式,即不能在文件中写入数据)。

file_path = "./data/example.txt"
with open(file_path, 'r') as f:
    # Further code will go here
    pass

现在我们已经打开了文件,但我们还没有真正地读取它。要读取 TXT 文件,我们需要使用 readlines() 方法。readlines() 方法将会返回一个字符串列表,其中每一个字符串是 TXT 文件中的一行。代码示例:

file_path = "./data/example.txt"
with open(file_path, 'r') as f:
    lines = f.readlines()

现在,我们已经能够读取文件内容存到lines数组中了。

4. 处理数据并转成 DataFrame

在处理TXT文件字符串时,我们可能需要进行一些操作,例如拆分数据、提取某些数据等等,然后将它们存储在一个 Pandas DataFrame 中。

举个例子,如果要读取的 TXT 文件包含下面两行内容:

1, 102, 0.25
2, 225, 0.36

我们可以使用 split() 方法将其拆分为一个个的数值,然后存放入一个二维数组中,如下所示:

data = []
for line in lines:
    row = line.strip().split(",")
    row = [int(x) if x.isdigit() else float(x) for x in row]
    data.append(row)

此处的 strip() 方法将会删除每行字符串中的空格和换行符。split() 方法将会将每行文本按照逗号进行拆分,并将拆分的结果存到 row 数组中。isdigit() 方法判断是否数字,将数字转换成 int 类型,其他情况转换为 float 类型。最后,我们将每一行数据存放在一个大数组 data 中。

将数据存储到 DataFrame 中非常简单,只需使用 pd.DataFrame() 来创建一个 DataFrame 对象,代码示例如下:

df = pd.DataFrame(data, columns=["col1", "col2", "col3"])

这里,我们提供了一个列名称列表 ["col1", "col2", "col3"],它与数组 data 的第二个维度完全匹配。这将使每列数据具有正确的名称。

5. 将 DataFrame 转换到 CSV 文件

最后一步是将我们的 DataFrame 对象转换为 CSV 文件,并将其保存到磁盘上。为此,我们可以使用 to_csv() 方法,代码示例如下:

output_path = "./output/output.csv"
df.to_csv(output_path, sep=",", index=False)

此处,我们定义了输出文件的路径和名称,以及我们想使用的逗号分隔符。index=False 参数会忽略 DataFrame 的索引值。这将把 DataFrame 转换为 CSV 并将输出文件保存到磁盘上。

完整代码:

import pandas as pd

file_path = "./data/example.txt"
with open(file_path, 'r') as f:
    lines = f.readlines()

data = []
for line in lines:
    row = line.strip().split(",")
    row = [int(x) if x.isdigit() else float(x) for x in row]
    data.append(row)

df = pd.DataFrame(data, columns=["col1", "col2", "col3"])

output_path = "./output/output.csv"
df.to_csv(output_path, sep=",", index=False)

以上是一个简单的例子。下面再提供一个稍微复杂一些的例子,供参考。

假设我们的 TXT 文件包含下面两行内容:

1, 102, 0.25. "Description 1"
2, 225, 0.36. "Description 2"

其中,列 "col4" 中包含用引号括起来的字符串描述。我们需要将这个字符串去掉,只留下数值。我们可以使用正则表达式 "[^"]*" 来匹配这个字符串,然后替换为空。

import pandas as pd
import re

file_path = "./data/example2.txt"
with open(file_path, 'r') as f:
    lines = f.readlines()

data = []
for line in lines:
    row = line.strip().split(",")
    row = [int(x) if x.isdigit() else float(x) if re.match("^[-+]?\d*\.\d+|[-+]?\d+", x) else re.sub('".*"', '', x) for x in row]
    data.append(row)

df = pd.DataFrame(data, columns=["col1", "col2", "col3", "col4"])

output_path = "./output/output2.csv"
df.to_csv(output_path, sep=",", index=False)

其中 re.match("^[-+]?\d*\.\d+|[-+]?\d+", x) 用于验证数值,re.sub('".*"', '', x) 用于删除双引号中的字符串。

希望这篇文章对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 循环读取txt文档 并转换成csv的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 在Django的模型和公用函数中使用惰性翻译对象

    在Django的模型中,我们常常需要在应用程序中使用多语言,而为了确保多语言支持和快速的翻译,我们通常使用 Django 的内置翻译函数 gettext_lazy() 和模型上下文中的 _() 函数,这两个函数都返回惰性翻译对象,本文将详细讲解如何在 Django 模型和公用函数中使用惰性翻译对象。 在Django模型中使用惰性翻译对象 在 Django 模…

    python 2023年5月18日
    00
  • Python调用pytdx的代码示例

    Python调用pytdx是一个比较常用的操作,接下来我将为你详细介绍。 1. 安装pytdx 在命令行中输入以下命令安装pytdx: !pip install pytdx 2. 连接pytdx 连接pytdx的代码如下: from pytdx.hq import TdxHq_API api = TdxHq_API() ip, port = "11…

    python 2023年6月3日
    00
  • Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】

    当然,我很乐意为您提供“Python元组tuple的概念与基本操作详解”的完整攻略。以下是详细步骤和示例。 Python元组tuple的概念 元组是Python中的一种数据类型,它类似于列表,但是元组是不可变的,即一旦创建就不能修改。元组使用小括号()来定义,其中的元素用逗号分隔。元组可以包含任何类型的数据,包括数字、字符串、列表、元组等。 Python元组…

    python 2023年5月13日
    00
  • python 接口_从协议到抽象基类详解

    什么是Python接口和协议? Python的接口和协议提供了一种定义类之间交互的规范。接口是一个抽象类,它定义了类应该遵循的方法和属性。协议是一个特定的接口,它规定了一个类必须实现的特定方法和属性。 在Python中,接口通常是通过抽象基类(Abstract Base Classes)的方式实现的。它们提供了一种检查子类是否实现了父类方法的方法。 抽象基类…

    python 2023年5月14日
    00
  • 数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法

    对于这个问题,我可以给出以下详细的攻略,分别涵盖如何将数组保存为txt、npy、csv文件以及如何使用enumerate函数进行数组遍历。 数组保存为txt文件 将数组保存为txt文件可以使用Python自带的open函数进行操作。具体步骤如下所示: 引入csv库 import csv 定义数组 假设我们需要保存的数组名为 arr。 打开文件并将数组写入 w…

    python 2023年6月3日
    00
  • BeautifulSoup中find和find_all的使用详解

    在本攻略中,我们将介绍BeautifulSoup中find和find_all的使用方法。以下是一个完整攻略,包括两个示例。 find和find_all的区别 在使用BeautifulSoup解析HTML页面时,我们经常需要查找特定的标签或标签组。find和find_all是两个常用的方法,用于查找标签或标签组。 find方法用于查找第一个符合条件的标签,而f…

    python 2023年5月15日
    00
  • python 将数据保存为excel的xls格式(实例讲解)

    下面是“Python将数据保存为Excel的xls格式(实例讲解)”的完整实例教程。 什么是xls格式 xls格式是Microsoft Excel电子表格文件的标准文件格式。它是一种二进制文件格式,包含格式、布局和其他电子表格内容。在Python中,我们可以使用第三方库来创建和保存xls文件。 1. 安装依赖库 在Python中,我们可以使用Python的o…

    python 2023年5月13日
    00
  • Python语法概念基础详解

    让我详细讲解一下“Python语法概念基础详解”的攻略。 一、Python语法概念基础 1. 注释 Python中的注释以 # 开头,可以单独一行或者在代码行的末尾进行注释。注释是给读者阅读代码带来的额外解释,不会对程序的执行产生影响。 # 这是单行注释 x = 1 # 这是对变量x进行注释 2. 变量 Python中的变量是动态类型的,也就是说在定义变量时…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部