Как я могу проверить, является ли файл пустым или нет? и очистить его перед записью, если нет? - PullRequest
1 голос
/ 15 июля 2010
myfile = open('out.txt', 'a')  
myfile.write(caption)

Я пишу что-то подобное всякий раз, когда запускается мой скрипт.Но после первого запуска он продолжает добавлять те же данные в файл.Как я могу проверить, является ли он пустым или нет, и сказать ему писать, только если он пуст?

Ответы [ 4 ]

9 голосов
/ 15 июля 2010

Если вы хотите сначала очистить любые существующие данные в файле и записать вывод независимо от того, был файл пуст или нет, это просто: просто используйте

open('out.txt', 'w')

'w' означает «запись», 'a' означает «добавление».

Если вы хотите проверить, есть ли в файле данные, и ничего не записывать, если есть данные, тогда ответ Hypnos будет уместным.Проверьте размер файла и пропустите код записи файла, если файл не пустой.

5 голосов
/ 15 июля 2010

Вы можете просто проверить размер файла целевого файла с помощью:

import os
b = os.path.getsize("path_to_file")
3 голосов
/ 15 июля 2010

Вы можете использовать file.read([size]), чтобы проверить, пуст ли файл - если он возвращает None с первого раза, чем он пуст.

Дать python doc взгляд.

0 голосов
/ 23 июля 2015
  1. Открыть файл
  2. Проверьте размер
  3. Напишите, если размер> 0

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

import os

with open('out.txt', 'a') as myfile:
    if os.path.getsize(myfile) == 0:
        myfile.write(caption)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...