2016-04-06 4 views
0

Я хочу вставить возвращаемое значение Random() в txt-файл без перезаписи ('a') и в определенное место, например, на символ sixt, но когда я выполняю это , Random - вставка в третью строку.Python вставляет символы в txt-файл без перезаписывания

`def Modif_Files(p_folder_path): 

    Tab = [] 
    for v_root, v_dir, v_files in os.walk(p_folder_path): 
     print v_files 
     for v_file in v_files: 
      file = os.path.join(p_folder_path, v_file) 
      #with open(file, 'r') as files: 
       #for lines in files.readlines(): 
        #Tab.append([lines]) 
      with open(file, 'a') as file: 
       file.write("\n add " + str(Random())) #Random = int 
       #file.close 

def Random(): 

    global last 
    last = last + 3 + last * last * last * last % 256 
    return last 

def main(): 

    Modif_Files(Modif_Path, 5) # Put path with a txt file inside 
if __name__ == '__main__': 
    main() 

`

ответ

0

Хорошо, я нашел решение; с открытым (файл, «г +») в файле:

г + и работать как шарм :)

1

Перебрав несколько других постов, кажется, что это не представляется возможным написать в середине начала файла непосредственно без перезаписи. Чтобы писать в середине, вам нужно скопировать или прочитать все после позиции, в которую вы хотите вставить. Затем после вставки добавьте содержимое, которое вы читаете в файл. Источник: How do I modify a text file in Python?

+0

Спасибо, я буду тестировать :) – Kylar

+0

С file.seek (0, размер), у меня есть ошибки : IOError: [Errno 22] Недопустимый аргумент (размер определен в параметрах функции, size = 6) – Kylar

+0

исправил его только сейчас. try fo.seek (6,0) – XZ6H

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