myfile = open('out.txt', 'a')
myfile.write(caption)
Я пишу что-то вроде этого, когда запускается мой script. Но после первого запуска он продолжает добавлять те же данные в файл. Как я могу проверить, пуст ли он или нет, и сказать, что писать, только если он пуст?
Если вы хотите сначала удалить все существующие данные в файле и записать свой вывод, был ли файл пустым или нет, это просто: просто используйте
open('out.txt', 'w')
'w'
означает "писать", 'a'
означает "добавить".
Если вы хотите проверить, есть ли в нем данные, и вообще ничего не писать, если есть данные, тогда ответ Hypnos был бы уместным. Проверьте размер файла и пропустите код записи файла, если файл не пуст.
Вы можете просто проверить размер файла целевого файла с помощью:
import os b = os.path.getsize("path_to_file")
Вы можете использовать file.read([size])
, чтобы проверить, является ли файл пустым - если он возвращает None
с первого раза, чем пустой.
Дайте python doc внешний вид.
Открыв файл до того, как размер будет проверен, вы избежите любых условий гонки.
import os
with open('out.txt', 'a') as myfile:
if os.path.getsize(myfile) == 0:
myfile.write(caption)