Как я могу проверить, является ли файл пустым или нет? и очистить его перед записью, если нет?

1
myfile = open('out.txt', 'a')  
myfile.write(caption)

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

Теги:
file-io

4 ответа

9
Лучший ответ

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

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

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

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

5

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

import os
b = os.path.getsize("path_to_file")
  • 0
    Это вводит условие гонки.
3

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

Дайте python doc внешний вид.

0
  • Откройте файл
  • Проверьте размер
  • Write if size > 0

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

import os

with open('out.txt', 'a') as myfile:
    if os.path.getsize(myfile) == 0:
        myfile.write(caption)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню