2013-09-30 28 views
-2

我如何查找並替換pyscripter中的文本文件中的項目?如何查找並替換pyscripter中的文本文件中的項目?

在一個腳本中,我通過將一個列表轉換爲一個字符串來將一個列表放入一個文本文件中。現在它有方括號。我需要刪除這些,以便我可以拿出個別的單詞和數字。我需要一個腳本,可以讓我找到並替換這些「無」的括號。

請幫忙!

這是我的文本文件目前的樣子。 1

+0

你可以在你的問題中直接粘貼小片段,或使用http://dpaste.com或http://pastebin.com等;純文本的截圖並不是真的非常符合人體工程學。 –

回答

0

首先,當你需要在一個文件中存儲一個列表時,使用JSON,pickle或者等價的方法。 JSON是首選的長期存儲以及存儲意味着被其他程序讀取,或通過網絡發送:

import json 

my_list = ["hello", "world"] 

with open('file.txt', 'w') as f: 
    json.dump(my_list, f) 

或者,如果你想要做的是存儲一個字/句子/短語每以純文本格式線:

my_list = ["hello", "world"] 
with open('file.txt', 'w') as f: 
    f.write('\n'.join(my_list)) # assuming your list isn't large 
    f.write('\n') 

(酸洗,在另一方面,有利於臨時/內部存儲,還有的東西,你不能轉換成一種形式,JSON可以處理存儲;更多信息,只需找到pickle模塊的文檔。)

現在,如果你搞砸了,只是把一個列表的字符串表示到該文件中,你要麼把它清理乾淨手動,或者您使用以下幫助:

import ast 
import json 

with open('file.txt') as f: 
    contents = f.read() 
contents = ast.literal_eval(contents) # parses the string as if it were a Pytnon literal (which it is) 

with open('file.txt', 'w') as f: 
    json.dump(contents, f) # write back as JSON this time 

如果文件中包含多個列表,每一個單獨的行,你可以使用這個:

import ast 
import json 

with open('file.txt') as f: 
    lines = f.read().split('\n') 
contents = [ast.literal_eval(line) for line in lines] 

# ...and now choose from above how you'd like to write it back to the file 

注意:哦...這似乎真的什麼都沒有做pyscripter,除非我已經錯過了一些東西。

+0

謝謝。即時通訊使用pyscripter來製作一個程序,可以存儲食譜,並在以後訪問..(在一個word文件中) – FireSwarm

+0

確實有道理謝謝你!唯一的問題是,內容= [ast.listeral_eval(行)]的行會在程序到達此部分時出現錯誤。 – FireSwarm

+0

對不起;錯字:應該是'literal_eval'而不是'listeral_eval';修復了答案。 –