写一段python程序:文件夹G:\drought\data\data1\stationhh下保存着txt文件,把每个文件转换成excel表格,再删除每个表格的第4列、6-10列、12-16列(保留1、2、3、5、11列)。
时间: 2024-09-11 13:09:06 浏览: 61
以下是一个Python脚本的示例,该脚本会遍历指定文件夹下的所有txt文件,将它们转换为Excel表格,并删除指定的列。在这个例子中,我使用了`pandas`库来处理数据,以及`openpyxl`库来操作Excel文件。请确保在运行此脚本之前已经安装了这两个库,否则需要使用`pip install pandas openpyxl`进行安装。
```python
import os
import pandas as pd
# 指定文件夹路径
folder_path = r'G:\drought\data\data1\stationhh'
# 获取该文件夹下所有的txt文件
txt_files = [f for f in os.listdir(folder_path) if f.endswith('.txt')]
# 遍历所有txt文件
for txt_file in txt_files:
# 构建完整的文件路径
file_path = os.path.join(folder_path, txt_file)
# 读取txt文件到DataFrame
df = pd.read_csv(file_path, sep='\t', header=0)
# 定义要保留的列名
columns_to_keep = [df.columns[i] for i in [0, 1, 2, 4] + list(range(5, 11))]
# 保留指定的列
df = df[columns_to_keep]
# 构建新的Excel文件名并保存
excel_file = txt_file.rsplit('.', 1)[0] + '.xlsx'
excel_path = os.path.join(folder_path, excel_file)
df.to_excel(excel_path, index=False)
print("转换完成。")
```
这个脚本执行了以下步骤:
1. 指定了包含txt文件的文件夹路径。
2. 读取该文件夹下的所有txt文件。
3. 对每个txt文件,使用pandas的`read_csv`方法读取数据到DataFrame,其中`sep='\t'`表示字段是用制表符分隔的,`header=0`表示第一行是列名。
4. 创建了一个列名列表,只包含要保留的列名。
5. 根据这个列表保留DataFrame中的列。
6. 将处理后的DataFrame保存为Excel文件(不包含索引)。
阅读全文