У меня есть текстовый файл.
Как я могу проверить, пусто это или нет?
python
file
file-length
webminal.org
источник
источник
stat.ST_SIZE
вместо 6источник
OSError
и вернуть False.Оба
getsize()
иstat()
сгенерируют исключение, если файл не существует. Эта функция вернет True / False без броска (проще, но менее надежно):источник
os.path.getsize()
os.path.isfile(fpath)
иos.path.getsize(fpath)
, и в этом случае предложенная функция вызовет исключение.OSError
вместо этого, как предложено в другом комментарии .TypeError
что будет повышено в случае, если входной fpath естьNone
.если по какой-то причине у вас уже был открыт файл, вы можете попробовать это:
источник
Итак, я объединю ответ ghostdog74 и комментарии, просто для удовольствия.
False
означает непустой файл.Итак, давайте напишем функцию:
источник
Если вы используете Python3,
pathlib
вы можете получить доступ кos.stat()
информации с помощьюPath.stat()
метода, который имеет атрибутst_size
(размер файла в байтах):источник
если у вас есть файл объекта, то
источник
Важное замечание: сжатый пустой файл будет отличен от нуля при тестировании с использованием функций
getsize()
илиstat()
:Таким образом, вы должны проверить, сжат ли проверяемый файл (например, проверить суффикс имени файла), и если это так, либо освободить его или распаковать во временное место, протестировать несжатый файл, а затем удалить его, когда закончите.
источник
Поскольку вы не определили, что такое пустой файл. Некоторые могут считать файл с пустыми строками также пустым файлом. Поэтому, если вы хотите проверить, содержит ли ваш файл только пустые строки (любые пробельные символы, '\ r', '\ n', '\ t') , вы можете следовать примеру ниже:
python3
Объясните: в приведенном выше примере регулярное выражение (регулярное выражение) используется для сопоставления содержимого (
content
) файла.В частности: для регулярного выражения:
^\s*$
в целом означает, что файл содержит только пустые строки и / или пробелы.-
^
устанавливает позицию в начале строки-
\s
соответствует любому символу пробела (равному [\ r \ n \ t \ f \ v])-
*
Квантификатор - Сопоставляет от нуля до неограниченного числа раз, столько раз, сколько возможно, возвращая при необходимости ( жадный)-
$
устанавливает положение в конце строкиисточник
если вы хотите проверить, что CSV-файл пуст или нет ....... попробуйте это
источник