我想创建一个程序来读取如下所示的.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
文件本身非常烦人。
答案 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!