用pyhton进行简单的行编缉器代码 要求:设置一个简单的行编缉器,每行以回车结束. 数据以文件形式存储 编辑器具有查找,替换,修改数据的功能.
时间: 2024-02-16 16:05:14 浏览: 29
好的,以下是一个简单的行编辑器的 Python 代码,其中包括查找、替换、修改数据的功能:
```python
import os
# 定义文件名
filename = 'data.txt'
# 定义查找函数
def search_data(search_str):
with open(filename, 'r') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if search_str in line:
print("Line %d: %s" % (i+1, line.strip()))
# 定义替换函数
def replace_data(search_str, replace_str):
with open(filename, 'r') as f:
lines = f.readlines()
with open(filename, 'w') as f:
for line in lines:
if search_str in line:
line = line.replace(search_str, replace_str)
f.write(line)
# 定义修改数据函数
def modify_data(line_num, new_data):
with open(filename, 'r') as f:
lines = f.readlines()
with open(filename, 'w') as f:
for i, line in enumerate(lines):
if i == line_num-1:
line = new_data + '\n'
f.write(line)
# 主程序
while True:
print("请选择要执行的操作:")
print("1. 查找数据")
print("2. 替换数据")
print("3. 修改数据")
print("4. 退出程序")
choice = input("请输入数字选择操作:")
if choice == '1':
search_str = input("请输入要查找的字符串:")
search_data(search_str)
elif choice == '2':
search_str = input("请输入要替换的字符串:")
replace_str = input("请输入替换后的字符串:")
replace_data(search_str, replace_str)
elif choice == '3':
line_num = int(input("请输入要修改的行号:"))
new_data = input("请输入新的数据:")
modify_data(line_num, new_data)
elif choice == '4':
break
else:
print("输入错误,请重新输入!")
# 结束程序
print("程序已退出!")
```
程序中定义了一个 `filename` 变量,用来存储数据的文件名。在主程序中,使用一个死循环来不断询问用户要执行的操作,根据用户的输入执行相应的函数。其中,查找函数使用 `readlines()` 方法读取文件中的所有行,然后逐行查找目标字符串;替换函数先读取所有行,然后将目标字符串替换为新字符串,最后再写回文件;修改函数则是先读取所有行,然后定位到要修改的行号,将该行数据替换为新数据,最后再写回文件。
注意:这只是一个简单的示例代码,实际应用中还需要考虑更多的情况和异常处理。