[英]Basic Python loop question - problem reading a list from a text file
我正在嘗試從文本文件中讀取項目列表,並使用方括號和分隔符進行格式化,如下所示:['item1','item2',....'last_item']但我在開始時遇到了麻煩和我經常得到的結束項目:...,'last_item','],所以我不希望最后一個''在那兒。
在python中,我寫了:
out_list = "['"
for line in open(file_in):
out_list += line #append the item to the list
out_accession_list += "','" #add the separator
out_accession_list += "]" #add the final closed bracket
return out_list
我意識到這是一個基本的循環問題,但我想不出最好的方法。 我應該使用try final語句,應該是while循環,還是應該先計算行數,然后再使用帶范圍的循環?
幫助非常感謝。
謝謝,約翰
閱讀所有行,並使用string.join()
方法將它們連接在一起。
lines = open(file_in).readlines()
out_list = "['" + "','".join(lines) + "']"
另外, join()
可以采用任何順序,因此無需讀取行。 上面的代碼可以簡化為:
out_list = "['" + "','".join(open(file_in)) + "']"
out_list = []
for line in open(file_in):
out_list.append("'" + line + "'")
return "[" + ",".join(out_list) + "]"
您在添加最后一個“]”之前將結果“”刪除“”。
例如使用string.rstrip(",")
要么
result = "['"
for line in open(file_in):
if len(result) > 0:
result += "','"
result += line
result += "']"
return result
您所需的輸出格式正是Python列表的標准可打印表示形式。 因此,一種簡單的解決方案是讀取文件,創建一個以每行作為字符串元素的列表(將每行的末尾剝去),然后調用Python內置函數repr來生成該列表的字符串表示形式:
>>> repr([line.rstrip() for line in open(file_in)])
"['item1', 'item2', 'item3']"
def do(filepath):
out = []
for line in open(filepath, 'r'):
out.append("'" + line.strip() + "'")
return out.__str__()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.