Как записать / добавить результат из программы с существующим файлом в другой каталог с таким же именем? - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел написать результат, получаемый из кода, с тем же именем существующего файла в другой директории "/ home / work / new_data /" в первой строке.Мои имена файлов от abc.1 до abc.1000

Я попытался следующим образом, но я не получил вывод, как ожидалось, это связано с тем, что myfile содержит "."персонаж или что-то еще мне не хватало?(мой файл немного больше)

    import pandas as pd
    import numpy as np
    import re
    import glob

    for filename in sorted(glob.glob('abc.*')):
     with open(filename) as f:
     df = pd.read_table(f, sep=" ", skiprows=2, names = ["Name" , "price", "quntity", "avg_q", "kke", "te"])

     mean = np.mean(df.price)

     name = (re.sub('[^0-9]','' , filename)) . #extracting the number from filename

    #NOW I TRIED FOLLOWING TO write mean at first line of existing file

    with open ("/home/work/new_data/abc.(name)", "rw") as new:
         lines = new.readlines() # read old content
         new.seek(0) # go back to the beginning of the file
         new.write('{}'.format(mean)) # write new content at the beginning
         for line in lines: # write old content after new
              new.write(line)
         new.close()

Я хочу, чтобы abc.1 был

      mean    #got from program output
      title
      date
      soap 10 1000 56 3 7
      sheets 34 2000 34 2 8
      ...

Мой фактический файл, который я обрабатывал abc.1:

      title
      date
      soap 10 1000 56 3 7
      sheets 34 2000 34 2 8
      ...

Я имею в виду Добавить строку к началу файла Проблема не решена.

1 Ответ

0 голосов
/ 25 декабря 2018

Я попробовал приведенный ниже фрагмент кода, и он сработал для меня.

>>> with open("testfile","r+") as f:
...     lines = f.read()
...     f.seek(0)
...     f.write("back to line number 1 ")
...     f.write(lines)
...

Надеюсь, это поможет.

...