1

.txt次のようなファイルを読み取るプログラムを作成したいと思います。

[リスト 1]

変数 1、変数 2、変数 3、変数 4

var5,var6

[リスト 2]

var7、var8、var9

タイトルが示すように、"[","]" の間のすべての用語のリストを作成し、それらの下にリストされた用語で構成されるこれらの各用語のリストを作成します (例: 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私が作っているインディーゲームを介してコンフィギュレーターを作ることができるように、私はそれをやろうとしています。.txtファイル自体を編集するのはかなり面倒です。

4

2 に答える 2

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)]
于 2013-02-01T23:03:07.573 に答える
0

モジュール (Myslef など) を使用するつもりはないのではないかと思ったので、次のことをお勧めします。

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!
于 2013-02-02T08:03:13.567 に答える