2013-09-30 5 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

спасибо. im, используя pyscripter, чтобы создать программу, которая может хранить рецепт и получить доступ позднее. (в файле слов) – FireSwarm

+0

, что имеет смысл спасибо! единственное, что строка с содержимым = [ast.listeral_eval (строка) для строки в строках], возникает с ошибкой, когда программа достигает этой части. – FireSwarm

+0

извините; опечатка: должна была быть 'literal_eval' не' listeral_eval'; исправил ответ. –

Смежные вопросы