Python 从Dataframe中的文本文件获取用户输入

Python 从Dataframe中的文本文件获取用户输入,python,pandas,dataframe,user-input,Python,Pandas,Dataframe,User Input,我有一个Pandas程序,可以接受用户输入,形成相关的数据帧。但是,用户输入现在不是来自用户的键盘,而是来自另一个文本文件。文本文件如下所示: 3 16SCSE102014 15/03/19 16SCSE101350 15/03/19 16SCSE101002 22/03/19 正如您所看到的,它只是几个字符串的输入数据,否则将直接来自用户键盘。长编号是要在输入提示下输入的注册号,日期是要输入以获取特定记录的日期 但是,文本文件中最上面的数字也是一个用户输入,它将决定用户在一次运行程序时要获取

我有一个Pandas程序,可以接受用户输入,形成相关的数据帧。但是,用户输入现在不是来自用户的键盘,而是来自另一个文本文件。文本文件如下所示:

3
16SCSE102014
15/03/19
16SCSE101350
15/03/19
16SCSE101002
22/03/19
正如您所看到的,它只是几个字符串的输入数据,否则将直接来自用户键盘。长编号是要在输入提示下输入的注册号,日期是要输入以获取特定记录的日期

但是,文本文件中最上面的数字也是一个用户输入,它将决定用户在一次运行程序时要获取多少条记录。(在本例中为3次,因此提供了3对regno和date记录)。可以有其他文本文件,其顶部数字为n,后面是相同数量的用户输入数据对,如上所述

到目前为止,

with open(rpath_2, 'r') as f:
    cont = f.read().splitlines()
print(cont)
正在返回一个如下所示的列表:

['3', '16SCSE102014', '15/03/19', '16SCSE101350', '15/03/19', '16SCSE101002', '22/03/19']
如何将此列表转换为所需的用户输入,以构建获取记录所需的数据帧?程序必须对“n”个记录保持为真,而不仅仅是“3”的示例

>>cont=['3','16SCSE102014','15/03/19','16SCSE101350','15/03/19','16SCSE101002','22/03/19']
>>>记录长度=2
>>>对于范围(1,记录长度*int(续[0])中的i,记录长度:
...    # 打印记录
...    打印(续[i:(i+记录长度)])
['16SCSE102014','15/03/19']
['16SCSE101350','15/03/19']
['16SCSE101002','22/03/19']
如果您更改了
cont
中5的第一个值,则列表应返回空列表:

>>cont=['5','16SCSE102014','15/03/19','16SCSE101350','15/03/19','16SCSE101002','22/03/19']
>>>对于范围(1,记录长度*int(续[0])中的i,记录长度:
...    # 打印记录
...    打印(续[i:(i+记录长度)])
['16SCSE102014','15/03/19']
['16SCSE101350','15/03/19']
['16SCSE101002','22/03/19']
[]
[]
>>cont=['3'、'16SCSE102014'、'15/03/19'、'16SCSE101350'、'15/03/19'、'16SCSE101002'、'22/03/19']
>>>记录长度=2
>>>对于范围(1,记录长度*int(续[0])中的i,记录长度:
...    # 打印记录
...    打印(续[i:(i+记录长度)])
['16SCSE102014','15/03/19']
['16SCSE101350','15/03/19']
['16SCSE101002','22/03/19']
如果您更改了
cont
中5的第一个值,则列表应返回空列表:

>>cont=['5','16SCSE102014','15/03/19','16SCSE101350','15/03/19','16SCSE101002','22/03/19']
>>>对于范围(1,记录长度*int(续[0])中的i,记录长度:
...    # 打印记录
...    打印(续[i:(i+记录长度)])
['16SCSE102014','15/03/19']
['16SCSE101350','15/03/19']
['16SCSE101002','22/03/19']
[]
[]

嗨,古斯塔沃,你的逻辑是无可辩驳的。但是我仍然不知道如何将这些赋值给一个变量,否则这个变量将是用户输入的结果。例如:输入regno=a[0][0],输入日期=a[0][1]。以这种方式分配将产生具有相同注册表和日期的列表。但是我想把regno和date分配给下一对。你能详细说明一下你需要什么吗?我不明白,我是在几个小时的反复思考后才明白的。谢谢你的帮助,我以各种方式使用了你的代码。嗨,古斯塔沃,你的逻辑是无可辩驳的。但是我仍然不知道如何将这些赋值给一个变量,否则这个变量将是用户输入的结果。例如:输入regno=a[0][0],输入日期=a[0][1]。以这种方式分配将产生具有相同注册表和日期的列表。但是我想把regno和date分配给下一对。你能详细说明一下你需要什么吗?我不明白,我是在几个小时的反复思考后才明白的。谢谢你的帮助,我以各种方式使用了你的代码。