2016-03-17 6 views
0

У меня есть простая программа, которая управляет некоторыми сохраненными данными в некоторых текстовых файлах. Однако я должен хранить имя и пароль для разных файлов для чтения python.Переписывание определенных строк в Python

Мне было интересно, могу ли я получить эти два слова (имя и пароль) на двух отдельных строках в одном файле и получить python для перезаписи только одной из строк на основе того, что я предпочитаю перезаписывать (либо пароль, либо имя).

я могу получить питона читать отдельные строки с:

linenumber=linecache.getline("example.txt",4) 

В идеале идентификатор как что-то вроде этого:

linenumber=linecache.writeline("example.txt","Hello",4) 

Так что это было бы просто написать «Hello» в «example.txt» только в строке 4.

Но, к сожалению, это не похоже на то, что я могу получить слова, которые будут храниться в отдельных файлах, но в целом это делается в более крупном масштабе, у меня будет много о f текстовых файлов, все имена по-разному и с разными словами.

Если кто-то сможет помочь, он будет очень признателен!

Спасибо, Джеймс.

ответ

0

Вы можете попробовать со встроенной функцией open():

def overwrite(filename,newline,linenumber): 
    try: 
     with open(filename,'r') as reading: 
      lines = reading.readlines() 
     lines[linenumber]=newline+'\n' 
     with open(filename,'w') as writing: 
      for i in lines: 
       writing.write(i) 
     return 0 
    except: 
     return 1 #when reading/writing gone wrong, eg. no such a file 

Будьте осторожны! Он записывает все строки снова в цикле, и когда дело доходит до исключения, example.txt может быть уже пустым. Вы можете хранить все строки в списке все время, чтобы записать их обратно в файл в качестве исключения. Или сохраняйте резервные копии старых файлов.

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