gpt4 book ai didi

Python3,似乎无法理解如何从单个文件中获取信息并将其分发给其他几个文件

转载 作者:行者123 更新时间:2023-11-28 19:03:21 25 4
gpt4 key购买 nike

我正在执行一项任务,我必须收集存在于 txt 文件中的大量信息并对它们进行排序。这些信息是围绕个人信息的,并且是按顺序排列的。例如姓 名社会安全号码

地址

等等

我的目标是首先将信息整理出来,以便我可以按该顺序打印出来,然后确定所提供的虚构人物信息的性别。

想过把文件中的信息取进去整理成

  • 一个只有名字的列表
  • 一个只有社会安全号码的列表
  • 一个只有地址的列表

然后使用某种 zip 函数将列表上的索引添加在一起以创建配置文件。这样我就可以查看社会保障号并显示该人的性别。

到目前为止我想出的代码是

with open ("names.txt", "r", encoding="utf-8" ) as allasinfo:
namn = []
personnummer = []
adress = []
for x in allasinfo.readlines():
i = 3
while i > 0:


namn.append(x)
i-=1

personnummer.append(x)
i-=1

adress.append(x)
i-=1

我的计划是程序将文件中的第一个索引移到第一个姓名列表中,第二行是社会保障等等。程序打印出所有 3 个列表中的所有信息,使它们相同。有什么方法可以按照我尝试的方式将文件中的信息拆分到 3 个不同的位置吗?

最佳答案

有几种方法可以解决这样的问题。听起来您的文本文件包含原始数据,例如:

Name One
1111111
111 One Street
Name Two
2222222
222 Two Street
Name Three
3333333
333 Three Street

如果是这种情况,您要做的是在读取数据时跟踪行号,然后根据该行号为每一行分配一个值。与其将结果数据存储在不同的数组中,我更倾向于将其存储在一个字典元素数组中,这样您就可以将每个数据单元视为一个集合,这使得数据的处理更加直接,并且意味着您不需要将多个数组传递给不同的辅助函数。

values = []

with open("names.txt", "r", encoding="utf-8") as allasinfo:
line_number = 0
# The target keys in each dictionary object we'll create
target_keys = ['name', 'number', 'address']
# Just use the file object's built in enumerator
for x in allasinfo:
# if this line number starts a new record set, add
# a dictionary to the list of values
if line_number % len(target_keys) == 0:
values.append({})
# And add this row to the last dictionary, using the line
# number to note which key type this is
values[-1][target_keys[line_number % len(target_keys)]] = x
# Increment the line number
line_number += 1

这会将值存储在名为 values 的数组中,每个数组包含三个条目。如果您的文本文件不包含足够的行,最后的元素将丢失一些条目,因此请务必处理这种情况。

关于Python3,似乎无法理解如何从单个文件中获取信息并将其分发给其他几个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com