f.write, как я могу исправить заголовок в верхней части страницы? - PullRequest
3 голосов
/ 27 февраля 2020

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

Вот что у меня есть:

with open('Trial.txt', 'a') as fd:
    fd.write('{a:^8}  {b:^8}    {c:^8}      {d:^8}  {e:^8}'.format(a='DIA', b='Dia', c='Len',d='PRO',e='time'))
    fd.write("\r")
    fd.write(f'    {magnitude}          {diameter}        {Length}      {Pro_code}     {Time}')
    fd.write("\r\n") 

вывод получается следующим образом:

    DIA            Dia           Len           PRO           time
    8.0            7000          500      0.0052297            141
    DIA            Dia           Len           PRO           time
    7.0            6000          400      0.003237            161

Вот что я пытаюсь получить:

    DIA            Dia           Len           PRO           time
    8.0            7000          500      0.0052297           141
    7.0            6000          400      0.003237            161

1 Ответ

2 голосов
/ 27 февраля 2020

Так как вы открываете файл в режиме добавления, вы должны писать заголовок, только если файл только что создан. Для этого вы можете использовать метод tell объекта файла и проверить, находится ли он в позиции 0, чтобы определить, является ли он новым файлом, и записать заголовок, только если он:

with open('Trial.txt', 'a') as fd:
    if fd.tell() == 0:
        fd.write('{a:^8}  {b:^8}    {c:^8}      {d:^8}  {e:^8}\r\n'.format(a='DIA', b='Dia', c='Len',d='PRO',e='time'))
    fd.write(f'    {magnitude}          {diameter}        {Length}      {Pro_code}     {Time}\r\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...