我有一个充满行的文件,其中每一行都有银行账户对象的属性。文件布局示例:
1, IE33483, alex,1,100,20, s
2,IE30983,乔,1,0,20,c
3,IE67983,汤姆,1,70,20,s
我试图创建一些代码,将搜索这个文件的用户输入(例如,他们输入他们的id,这是每行的第一个元素),并将使用这3个属性来创建一个对象。有什么帮助吗?这是我到目前为止所尝试的,但它似乎不适用于具有多行的文件:
accid=input("Enter ID of account to manage:\n")
f = open("accounts.txt", "r")
for line_str in f:
split_line = line_str.split(",")
accid2 = split_line[0].strip()
if split_line[6] == 's':
for line in split_line:
if accid2 == accid:
current_acc=SavingsAccount(accid, split_line[1],
split_line[2],
split_line[3],
split_line[4],
split_line[5],
split_line[6])
print("Logged in as: ")
print(current_acc.accid)```
您可以这样做-无需遍历每行中的各个部分。
def get_account_by_id(id, type_)
with open("accounts.txt") as f:
for line in f:
parts = line.split(",")
if parts[0] == id and parts[6] == type_:
return SavingsAccount(*parts)
accid = input("Enter ID of account to manage:\n")
account = get_account_by_id(accid, type_="s")
if account is not None:
print(f"Logged in as {account.accid}")
或者更好,如果您的文件是有效的CSV文件,请使用CSV模块
import csv
def get_account_by_id(id, type_)
with open("accounts.txt") as f:
for row in csv.reader(f):
if row[0] == id and row[6] == type_:
return SavingsAccount(*row)
问题内容: 我在python中有一个 统一 的对象列表: 现在,我想提取一个具有该类某些属性的列表(比如attr),以便将其传递给某个函数(例如用于绘制该数据) pythonic的做法是什么, ? 也许派生列表并添加一个方法,所以我可以使用一些习惯用法,例如 ? 问题答案: 您还可以编写: 这样,您将获得一个节省内存的生成器。有关更多好处,请参见Generator Expressions 。
问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正
我正在尝试过滤scala中对象列表的列表属性。例如: 用java定义的类 我的过滤器函数返回字符串列表而不是结果列表 UPDATE我想取回listOf中的所有结果,其中每个结果的名称属性被过滤。
问题内容: 我有一个对象列表。对象具有3个字符串属性。我想制作一个仅包含类中特定属性的列表。 有内置的功能可以做到这一点吗? 问题答案: 列表理解会很好地工作: 但是,由于您要求:-),所以有内置功能的组合。
我有一个文件位于/res/introducted。xml。我知道我可以通过两种方式访问它: 1) R.引入的资源 2)一些绝对/相对URI 我正在尝试创建一个File对象以将其传递给特定的类。我该怎么做?
问题内容: 我需要从URL对象创建一个File对象我的需求是我需要创建一个网络图像的文件对象(例如googles徽标) 问题答案: 您可以利用以便从URL加载图像,然后将其写入文件。像这样: 如果需要,这还允许您将图像转换为其他格式。