如果我在一个文件夹里面有很多个txt文件,我想按顺序处理完文件夹中所有的txt文件,处理方式为 txt点云文件一共有7列数据 我提取前6列,最后一列的label标签 如果是4保持不变,5变成4,6变成5我该怎么写代码 window系统
时间: 2023-10-06 09:05:12 浏览: 150
你可以使用 Python 的 os 和 pandas 库来实现这个需求。具体的代码如下:
```python
import os
import pandas as pd
# 读取文件夹中所有txt文件
folder_path = 'your_folder_path'
files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]
for file_name in files:
# 读取txt文件并提取前6列和最后一列
file_path = os.path.join(folder_path, file_name)
data = pd.read_csv(file_path, sep=' ') # 假设数据之间用空格分隔
data = data.iloc[:, [0, 1, 2, 3, 4, 5, -1]] # 取前6列和最后一列
# 将标签列的值修改为需求的值
data.iloc[:, -1] = data.iloc[:, -1].apply(lambda x: 4 if x == 4 else (4 if x == 5 else 5))
# 将修改后的数据写入新的txt文件
output_file_path = os.path.join(folder_path, 'new_' + file_name)
data.to_csv(output_file_path, header=None, index=None, sep=' ', mode='w')
```
这段代码会将文件夹中所有的txt文件读取进来,然后逐一处理。对于每个txt文件,我们使用 pandas 的 read_csv 函数读取其中的数据,并提取前6列和最后一列。然后,我们使用 apply 函数将最后一列的标签值修改为需求的值。最后,我们将修改后的数据写入新的txt文件中。新的txt文件的文件名为“new_原文件名”。
阅读全文