阅读文本并制作“列表清单”

时间:2013-02-01 21:23:41

标签: python list configuration-files

我想创建一个程序来读取如下所示的.txt文件:

  

[LIST 1]

     

VAR1,VAR2,VAR3,VAR4

     

VAR5,var6

     

[LIST 2]

     

var7,var8,var9

正如标题所说,我想列出“[”,“]”之间的所有术语,并为这些术语中的每一个创建一个列表(例如:{{1 }})。

到目前为止,我列出了“[]”之间的术语:

LIST2 = [var7, var8, var9]

正如您所看到的,唯一要做的就是将这些新创建的变量分配到try: f = open("tm.txt", "r") try: string = f.read() finally: f.close() except IOError: pass lista = re.findall(re.escape("[")+"(.*)"+re.escape("]"),string) for i in range(len(lista)): vars()[lista[i]] = i #makes str into var and gives a value to them print vars()[lista[i]] #prints what is inside of each var of the list print lista #prints each var names 文件下的术语列表中。我正在尝试这样做,所以我可以通过.txt为我正在制作的独立游戏制作一个配置器。编辑TKinter文件本身非常烦人。

2 个答案:

答案 0 :(得分:0)

来自ConfigParser模块的示例部分:

>>> import ConfigParser
>>> import io
>>> s = """[LIST 1]
... 
... var1,var2,var3,var4
... 
... var5,var6
... 
... [LIST 2]
... 
... var7,var8,var9"""
>>> config = ConfigParser.RawConfigParser(allow_no_value=True)
>>> config.readfp(io.BytesIO(s))
>>> config.items('LIST 1')
[('var1,var2,var3,var4', None), ('var5,var6', None)]

答案 1 :(得分:0)

我认为你可能没有任何意图使用模块(比如我自己),所以我建议:

file1 = open('tm.txt')
flist = file1.readlines()
file1.close()
flist = [i.rstrip() for i in flist]
c = 0
final = []
for i in flist:
    if(i == '[LIST {0}]'.format(c+1)):
        temp = []
        final.append(temp)
        c += 1
    else:
        for j in i.split(','):
            temp.append(j)
            final[len(final)-1] = temp
print(final)

# Each Member OF 'final' List is The List You Want!