打算用Python 开发一个桌面应用,实现排量获取txt文件,使用正则表达式判断每行前面以“SVSPOTMOV”开头的整行全所内容抽取数据并保存抽取记录,可通过查找选择查看历史数据,能说说怎么实现吗?写出代码
时间: 2024-02-18 17:05:37 浏览: 60
python 读取txt中每行数据,并且保存到excel中的实例
好的,首先你需要安装Python并且学习Python的基础知识。然后你需要使用Python的GUI库来实现桌面应用的开发。我这里推荐使用PyQt5。
接下来,你需要编写代码来实现你的需求。下面是一个简化版的代码示例:
```python
import re
from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QAction, QFileDialog
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.text_edit = QTextEdit()
self.setCentralWidget(self.text_edit)
self.init_ui()
def init_ui(self):
open_file_action = QAction('Open', self)
open_file_action.setShortcut('Ctrl+O')
open_file_action.triggered.connect(self.open_file)
save_file_action = QAction('Save', self)
save_file_action.setShortcut('Ctrl+S')
save_file_action.triggered.connect(self.save_file)
menu_bar = self.menuBar()
file_menu = menu_bar.addMenu('File')
file_menu.addAction(open_file_action)
file_menu.addAction(save_file_action)
def open_file(self):
options = QFileDialog.Options()
options |= QFileDialog.ReadOnly
file_name, _ = QFileDialog.getOpenFileName(self, 'Open File', '', 'Text Files (*.txt)', options=options)
if file_name:
with open(file_name, 'r') as f:
lines = f.readlines()
results = []
for line in lines:
if re.match(r'^SVSPOTMOV', line):
results.append(line)
self.text_edit.setPlainText('\n'.join(results))
def save_file(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
file_name, _ = QFileDialog.getSaveFileName(self, 'Save File', '', 'Text Files (*.txt)', options=options)
if file_name:
with open(file_name, 'w') as f:
f.write(self.text_edit.toPlainText())
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这段代码使用了PyQt5库来创建了一个简单的窗口,包含了一个文本编辑框和菜单栏。通过菜单栏的“Open”选项可以打开一个txt文件,然后通过正则表达式匹配每行前面以“SVSPOTMOV”开头的整行全所内容,抽取数据,并保存抽取记录。通过菜单栏的“Save”选项可以将抽取记录保存到一个txt文件中。
需要注意的是,这段代码只是一个简单的示例,你需要根据你的实际需求进行修改和完善。
阅读全文