簡體   English   中英

如何將Python列表寫到文件中?

[英]How do I write a Python list out to a file?

我正在嘗試將字符串列表寫入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
  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()
for s in (str(item[0]) for item in li):
    print(s)
    logfile.write(s+'\n')

print("done deleting the object")
logfile.close()

您要搜索的字符串函數是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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM