用python把下面所有步骤写成代码,用re,argparse,pandas。可以实现通过命令把txt文件的指定内容另存为CSV,生成的CSV文件自动命名并保存到当前文件夹。 弹出指定标题的曲线图 1.读取txt文件 2.遍历文档,先找到关键字所在行数,然后保存从这一行到末尾的所有内容,删除重复内容的行,没有Header,另存为到到CSV。 3.将CSV中的文本内容,以空格为分隔符,进行分列 4.插入已经设置好的标题 5.根据标题和数据,生成曲线图。
时间: 2023-07-14 11:12:48 浏览: 97
以下是实现你所需功能的Python代码:
```python
import re
import argparse
import pandas as pd
import matplotlib.pyplot as plt
# 定义命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('filename', help='需要读取的txt文件名')
parser.add_argument('keyword', help='需要查找的关键字')
parser.add_argument('title', help='生成的曲线图标题')
args = parser.parse_args()
# 读取指定的txt文件
with open(args.filename, 'r') as f:
file_content = f.readlines()
# 查找包含关键字的行数,保存从这一行到末尾的内容
start_index = None
for i in range(len(file_content)):
if re.search(args.keyword, file_content[i]):
start_index = i
break
if start_index is None:
print('未找到关键字')
exit()
content = file_content[start_index:]
# 去掉重复行并另存为CSV
df = pd.DataFrame(content)
df.drop_duplicates(inplace=True)
df.to_csv(f'{args.title}.csv', index=False, header=False)
# 读取CSV并分列
df = pd.read_csv(f'{args.title}.csv', delimiter=' ', header=None)
df.columns = ['col'+str(i+1) for i in range(df.shape[1])]
# 插入标题
df.insert(0, 'title', args.title)
# 生成曲线图
plt.plot(df['col1'], df['col2'])
plt.title(args.title)
plt.xlabel('x')
plt.ylabel('y')
plt.show()
```
这个脚本中的 `argparse` 模块用于解析命令行参数,`re` 模块用于查找关键字所在行数,`pandas` 模块用于读取和写入 CSV 文件以及对数据进行操作,`matplotlib` 模块用于生成曲线图。你可以运行 `python script.py -h` 查看脚本的帮助信息,了解如何使用这个脚本。
阅读全文