如何在pyscripter中查找和替换文本文件中的项目?

时间:2013-09-30 12:00:37

标签: python serialization replace find pyscripter

如何在pyscripter中找到并替换文本文件中的项目?

在脚本中,我通过将列表转换为字符串将列表放入文本文件中。现在它有方括号。我需要删除这些,所以我可以取出单个单词和数字。我需要一个脚本,允许我用“无”找到并替换这些括号。

请帮忙!

这是我的文本文件目前的样子。 1

1 个答案:

答案 0 :(得分: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可以处理的形式的内容;有关更多信息,请查找{{1}的文档}模块。)

现在,如果您已经搞砸了并且只是将列表的字符串表示放入文件中,您可以手动清理它,或者使用以下帮助程序:

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

注意:哦......这似乎与pyscripter无关,除非我错过了什么。