2013-09-30 27 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';修复了答案。 –