如何从文件中读取列表和整数?

巴蒂斯特·戈多

我正在尝试基于 Enigma 制作一个编码系统,但我想对其进行一些改动。为了使用户 id 可以自定义程序,例如创建“文件”,其中包含我的 prgramm 将用来加密消息的参数。它包括列表和整数。我怎样才能阅读它们?

我尝试使用拆分方法并用“/”分隔我的列表,但列表被视为字符串。

这是我想按顺序分配给我试图用“/”分隔的参数 list1、list2、list3、list4、trigger1、trigger2、trigger3 的示例:

[6,18,20,12,17,26,19,4,10,22,13,7,14,1,21,9,2,16,3,23,24,8,15,11,25,5]/[1,-5,6,3,-4,2,-4,-4,-3,5,-1,1,-2,-2,-1,3,4,2,5,-4,-4,-4,2,-2,1,5]/[5,-1,-1,-1,-1,1,4,-3,-1,4,1,1,-4,2,-5,4,0,-3,-1,1,-2,0,2,2,-1,-3]/[2,-1,2,0,-3,2,-1,-1,0,2,-1,2,-2,-1,1,4,2,0,-2,-5,2,-1,3,0,-3,-1]/11/5/17

f=open("param.txt")
param=f.read()
list_tbl,param=param.split("/",1)
list_pattern1,param=param.split("/",1)
list_pattern2,param=param.split("/",1)
list_pattern3,param=param.split("/",1)
trigger1,param=param.split("/",1)
trigger2,param=param.split("/",1)
trigger3=param

当我尝试使用列表时,它们无法使用,因为它们是字符串。

彼得巴迪达

看看ast.literal_eval哪个基本上可以做你想做的事情,即用这样的字符串制作一个列表:

from ast import literal_eval
my_string = '[0, 1, 2, 3]'
my_list = literal_eval(my_string)

要创建多个变量,您可以使用字典代替,然后只需通过键获取它,例如:

my_dict = {}
for i in range(10):
    my_dict['list' + str(i)] = <some value>

这绝对比在创建每个变量上浪费线更漂亮。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章