0

Pythonでファイルに文字列のリストを書き込もうとしています。これを行うときに私が抱える問題は、出力の外観です。リスト構造なしでリストの内容を書きたい。

これは、ファイルにリストを書き込んでいるコードの一部です。

loglengd = len(li)
runs = 0
while loglengd > runs:
    listitem = li[runs]
    makestring = str(listitem)
    print (makestring)
    logfile.write(makestring + "\n")
    runs = runs +1
print("done deleting the object")
logfile.close()

これが私に与える出力は次のようになります:

['id:1\n']
['3\n']
['-3.0\n']
['4.0\n']
['-1.0\n']
['id:2\n']
['3\n']
['-4.0\n']
['3.0\n']
['-1.0\n']
['id:4\n']
['2\n']
['-6.0\n']
['1.0\n']
['-1.0\n']

これは、次のように表示されるはずです。

id:1
3
-3.0
4.0
-1.0
id:2
3
-4.0
3.0
-1.0
id:4
2
-6.0
1.0
-1.0
4

3 に答える 3

2
  1. ループの使い方を学んでください ( http://wiki.python.org/moin/ForLoop )

  2. li文字列のリストではなく、リストのリストのようです。したがってlistitem[0]、文字列を取得するには を使用する必要があります。

テキストをファイルに書き込みたいだけの場合:

text='\n'.join(listitem[0] for listitem in li)
logfile.write(text)
logfile.close()

ループ内で何かをしたい場合:

for listitem in li:
    logfile.write(listitem[0] + '\n')
    print listitem[0]
logfile.close()
于 2012-06-14T18:53:49.893 に答える
0
for s in (str(item[0]) for item in li):
    print(s)
    logfile.write(s+'\n')

print("done deleting the object")
logfile.close()
于 2012-06-15T02:31:39.233 に答える
-2

検索している文字列関数は strip() です。

それはこのように動作します:

logs = ['id:1\n']
text = logs[0]
text.strip()
print(text)

したがって、次のように書く必要があると思います。

loglengd = len(li)
runs = 0
while loglengd > runs:
    listitem = li[runs]
    makestring = str(listitem)
    print (makestring.strip())     #notice this
    logfile.write(makestring + "\n")
    runs = runs +1
print("done deleting the object")
logfile.close()
于 2012-06-14T18:56:19.660 に答える