python - 如何根据用户输入编辑特定行上的特定单词?
问题描述
作为我大学项目的一部分,我正在开发机票预订系统。不允许使用模块和全局变量。我的项目包含航班时刻表,它保存并存储在名为 schedule.txt 的 .txt 文件中。还说我需要为管理员编写代码,他们可以在其中自由编辑航班时刻表中的详细信息。航班时刻表的详细信息包括:预订代码、航班号、航空公司、从、至和出发日期。
schedule = open("schedule.txt", "w")
schedule.write("\n[100] MH371, MALAYSIAN AIRLINE, KUALA LUMPUR, BEIJING , 19-12-2021, N/A"
"\n[200] SX849, AIRASIA , KUALA LUMPUR, BANGKOK , 05-01-2022, N/A"
"\n[300] MH234, MALAYSIAN AIRLINE, KUALA LUMPUR, LANGKAWI, 03-02-2022, N/A"
"\n[400] FD709, KOREA AIRLINE , KUALA LUMPUR, SEOUL , 29-12-2021, N/A"
"\n[500] Z1314, CATHAY AIRLINE , KUALA LUMPUR, TOKYO , 21-01-2022, N/A"
"\n[600] HY520, EMIRATES , KUALA LUMPUR, TAIPEI , 15-11-2021, N/A"
"\n[700] TT879, MALINDO AIR , KUALA LUMPUR, HAWAII , 08-02-2022, N/A")
schedule = open("schedule.txt", "r")
print(schedule.read())
最初我的代码是
with open('schedule.txt') as new_schedule:
contents = new_schedule.read()
old_data = str(input("Data to edit: "))
new_data = str(input("New data: "))
contents = contents.replace(old_data, new_data)
with open('schedule.txt', 'w') as file:
schedule.write(contents)
但显然这段代码不起作用,因为 txt 文件中有重复的数据,例如“吉隆坡”该行的 1 个单词
解决方案
我认为您可以使用enumerate
读取索引和字符串行:
with open("schedule.txt") as fp:
for i, line in enumerate(fp):
if i == 1:
print(line)
之后,用split(',')
temp = line.split(',')
然后用新的替换行的索引并使用
" , ".join(temp)
最后,用变量替换该行temp
。
推荐阅读
- c# - 如何在while循环中获取多个用户输入
- java - 从文件中读取不同的数据类型
- cuda - 为什么 NsightVSE Analyzer 在 RTX 2080ti 上不起作用?
- python - 从列表列表中选择列表
- google-chrome - Syntax differences between Tampermonkey and Greasemonkey?
- html - 使用文本溢出:带有弹性框的省略号
- python - 在循环中创建列表列表
- java - Listing all files with a .txt extension recursively
- laravel-5 - 如何在 grup 路由中添加额外的中间件?
- highcharts - 如何创建居中和封闭的 Highchart xAxis 标签?