python - 多行数据,想获取索引还是想办法按顺序获取
问题描述
- 读取并存储该文件中的数据。
- 用户获取对应于开始和结束年份的两个整数,并按此顺序查找并列出该期间出版的所有书籍的出版年份、标题、作者。
- 它重复上一步,直到用户在提示输入开始年份时输入 -1。
这是我到目前为止所拥有的(见图)
def main():
file = open("resources.txt","r")
myList = []
year1 = int(input("Enter the first year:"))
year2 = int(input("Enter the second year: "))
for x in range(year1, year2):
print(yearofpublication,title, author)
文件是 1000 行
我主要需要#2的帮助。谢谢
解决方案
这是一个不使用 Pandas 的解决方案。我已根据您要求的步骤添加注释以分解代码。第 1 步导入文本文件,去掉所有制表符和换行符,并在分号上分割每一行以创建列表列表。步骤 2 遍历所有书籍并将每本书的索引 3(年份)与指定年份进行比较。第 3 步创建了一个无限循环,并且仅在用户输入 -1 时才将其中断。
#step 1
data = open('resources.txt', 'r')
book_list = []
for line in data:
new_line = line.rstrip('\n').replace('\t', '').split(';')
book_list.append(new_line)
#step 3
while True:
year1 = int(input("Enter the first year:"))
if year1 == -1:
break
year2 = int(input("Enter the second year: "))
#step2
for book in book_list:
if year1 <= int(book[3]) <= year2:
print(f'Publication Year: {book[3]}, Title: {book[1]}, Author: {book[2]}')
推荐阅读
- c# - 公共聊天程序:Windows 窗体、C#
- sql - 为什么 R 数据框导出到 SQL Server 不起作用?
- awk - 比较两个文件时grep缺少行
- oracle-apex - 将用户 apex oracle 维护 = 'N' 更改为 'Y'
- html - 如何使我的下拉菜单链接更宽?
- c - objdump 显示的地址是最终地址还是只是偏移量?
- php - 使用 php 递归删除文件 - 仅限特定模式 - PHP
- unity3d - 如何使用 Rigidbody.MovePosition 和 Input.GetAxis 作为我的方向
- javascript - 获取 TypeError:在发布表单时无法读取未定义的属性“名称”-node.js
- javascript - 如何更改 URL 格式?