Как проверить что файл пустой python
Python: Проверьте, пуст ли файл или каталог
В этом уроке мы узнаем, как проверить, пуст ли файл или каталог в Python на примерах. Это можно сделать с помощью модулей os и path lib.
Python: Проверьте, пуст ли файл или каталог
Вступление
Python имеет набор встроенных библиотечных объектов и функций, которые помогут нам в решении этой задачи. В этом уроке мы узнаем, как проверить, пуст ли файл или каталог в Python.
Различайте файл и каталог
Использование os.path
Использование pathlib
Здесь мы проверяем, является ли объект Path файлом или каталогом.
Проверьте, пуст ли файл
Пустой файл или файл с нулевым байтом-это любой файл, который не содержит данных или содержимого. Файл может быть любого типа. Некоторые файлы (например, музыкальные файлы) могут не иметь данных, но все же содержать метаданные (например, автор). Такие файлы не могут рассматриваться как пустой файл.
Можно быстро создать пустой файл в Linux и Mac OS:
Давайте посмотрим на тип и размер этих файлов:
Использование os.stat
Использование os.path
Модуль Python os.path позволяет очень легко работать с путями к файлам. Помимо проверки наличия пути или определения их типа, мы также можем получить размер файла, указанного в виде строки.
os.path.getsize() возвращает размер файла, указанного как path-like-object и намного проще в использовании, чем os.stat() :
Использование pathlib
Проверьте, пуст ли каталог
Каталог, который не содержит других файлов или подкаталогов, является пустым каталогом. Однако каждый каталог (даже пустой) содержит следующие 2 записи:
В пустом каталоге нет никаких элементов:
Непустой каталог имеет один файл:
Использование os.listdir()
Вычисление длины возвращаемого списка легко определяет, является ли каталог пустым или нет. Пустой каталог всегда имеет нулевую длину:
Использование os.scandir()
Функция os.listdir() полезна, когда вам нужна целая куча имен записей в виде списка для дальнейшей обработки. Однако, чтобы проверить, есть ли хотя бы одна запись, нам не нужен список всех файлов внутри.
Если каталог огромен, то выполнение функции os.listdir() займет много времени, тогда как до тех пор, пока существует более 0 итак, на наш вопрос дан ответ.
Генераторы возвращают итераторы, которые могут быть зациклены, как обычные итераторы, такие как список. Но в отличие от списка, набора или словаря, они не хранят в памяти целую кучу значений и вместо этого возвращают новое значение по запросу.
Этот подход примерно в 200 раз быстрее для каталогов с
Использование pathlib
Вывод
В этом уроке мы рассмотрели, как различать файлы и каталоги, после чего проверили их пустоту.
Это можно сделать с помощью модулей os или path lib и их удобных функций и классов.
How to check whether a file is empty or not
I have a text file. How can I check whether it’s empty or not?
10 Answers 10
Both getsize() and stat() will throw an exception if the file does not exist. This function will return True/False without throwing (simpler but less robust):
If for some reason you already had the file open, you could try this:
If you are using Python 3 with pathlib you can access os.stat() information using the Path.stat() method, which has the attribute st_size (file size in bytes):
if you have the file object, then
Combining ghostdog74’s answer and the comments:
False means a non-empty file.
So let’s write a function:
Since you have not defined what an empty file is: Some might also consider a file with just blank lines as an empty file. So if you want to check if your file contains only blank lines (any white space character, ‘\r’, ‘\n’, ‘\t’), you can follow the example below:
Python 3
Explanation: the example above uses a regular expression (regex) to match the content ( content ) of the file.
Specifically: for a regex of: ^\s*$ as a whole means if the file contains only blank lines and/or blank spaces.
Python: проверка на пустоту файла или каталога
Python имеет набор встроенных библиотечных объектов и функций, которые помогут нам в решении этой задачи. В этом руководстве мы узнаем, как проверить, пуст ли файл или каталог в Python.
Определение файл или каталог
Когда мы хотим проверить, пуст ли путь или нет, мы захотим узнать, является ли он файлом или каталогом, поскольку это влияет на подход, который мы хотим использовать.
Использование os.path
os.path предоставляет нам функции isfile() и isdir() с помощью которых легко отличить файл и директорию:
Обе эти функции возвращают Boolean значение.
Использование pathlib
Здесь мы проверяем, является ли объект Path файлом или каталогом.
Проверьте, пуст ли файл
В Linux и MacOS можно быстро создать пустой файл:
Давайте теперь определим переменные emptyfile и nonemptyfile указывая на пустой файл, имеющий нулевые байты, и непустой файл, имеющий размер одного байта:
Давайте посмотрим на тип и размер этих файлов:
Использование os.stat
Использование os.path
Python модуль os.path позволяет очень легко работать с путями к файлам. Помимо проверки существования пути или определения их типа, мы также можем получить размер файла, указанного в виде строки.
os.path.getsize() возвращает размер файла, указанного как объект, подобный path-like, и его намного проще использовать, чем os.stat() :
Использование pathlib
Проверьте, пуст ли каталог
Каталог, в котором нет других файлов или подкаталогов, является пустым каталогом. Однако каждый каталог (даже пустой) содержит следующие 2 записи:
В пустом каталоге нет никаких элементов:
Непустой каталог содержит единственный файл:
Использование os.listdir()
Расчет длины возвращенного списка легко определяет, пуст каталог или нет. Пустой каталог всегда имеет нулевую длину:
Использование os.scandir()
Функция os.listdir() полезна, когда вам нужна целая куча названия записей в виде списка для дальнейшей обработки. Однако, чтобы проверить, есть ли хотя бы одна запись, нам не нужен список всех файлов внутри.
Генераторы возвращают итераторы, которые можно перебирать, как обычные итерации, такие как список. Но в отличие от списка, набора или словаря, они не хранят в памяти целую кучу значений, а вместо этого возвращают новое значение по запросу.
Этот подход примерно в
200 раз быстрее для каталогов из
Вывод
В этом руководстве мы рассмотрели, как различать файлы и каталоги, после чего проверили их пустоту.
Это можно сделать с помощью модулей os или pathlib и их удобных функций и классов.
Как проверить, существует ли файл или каталог в Python
При написании скриптов Python вы можете захотеть выполнить определенное действие, только если файл или каталог существует или нет. Например, вы можете захотеть прочитать или записать данные в файл конфигурации или создать файл, только если он уже не существует.
В Python есть много разных способов проверить, существует ли файл, и определить его тип.
В этом руководстве показаны три различных метода проверки существования файла.
Проверьте, существует ли файл
Самый простой способ проверить, существует ли файл, — это попытаться открыть файл. Этот подход не требует импорта какого-либо модуля и работает как с Python 2, так и с Python 3. Используйте этот метод, если вы хотите открыть файл и выполнить какое-либо действие.
Следующий код эквивалентен предыдущему примеру:
В приведенных выше примерах мы использовали блок try-except и открывали файл, чтобы избежать состояния гонки. Условия состязания возникают, когда к одному файлу обращается более одного процесса.
Например, когда вы проверяете наличие файла, другой процесс может создать, удалить или заблокировать файл в период времени между проверкой и открытием файла. Это может привести к поломке вашего кода.
Проверьте, существует ли файл с помощью модуля os.path
Модуль os.path предоставляет несколько полезных функций для работы с os.path путей. Модуль доступен как для Python 2, так и для 3.
В контексте этого руководства наиболее важными функциями являются:
Следующий оператор if проверяет, существует ли файл filename.txt :
Если вы хотите открыть и изменить файл, используйте предыдущий метод.
Проверьте, существует ли файл, используя модуль pathlib
Модуль pathlib доступен в Python 3.4 и выше. Этот модуль предоставляет объектно-ориентированный интерфейс для работы с путями файловой системы для различных операционных систем.
Как и в предыдущем примере, следующий код проверяет, существует ли файл filename.txt :
Если вы хотите использовать этот модуль в Python 2, вы можете установить его с помощью pip :
Выводы
В этом руководстве мы показали вам, как с помощью Python проверить, существует ли файл или каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Проверка, существует ли файл или каталог в Python
Дата публикации: 2019-07-11
От автора: в этом руководстве мы узнаем, как определить, существует ли файл (или каталог) в Python. Чтобы проверить это, мы используем встроенные функции библиотеки.
Есть разные способы проверить, существует ли файл или каталог, используя функции, перечисленные ниже.
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python
os.path.exists()
Используя path.exists, вы можете быстро проверить, существует ли файл или каталог.
Шаг 1) Перед запуском кода нужно импортировать модуль os.path.
Шаг 2) Теперь используйте функцию path.exists(), чтобы проверить, существует ли файл.
Шаг 3) Вот полный код
В нашем случае в рабочем каталоге создается только файл guru99.txt.
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python
os.path.isfile()
Мы можем использовать команду isfile, чтобы проверить, является ли данный ввод файлом или каталогом.
os.path.isdir()
Если мы хотим подтвердить, что данный путь указывает на каталог, мы можем использовать функцию os.path.dir():
pathlibPath.exists() для Python 3.4
В Python 3.4 и более поздних версиях есть модуль pathlib для работы с путем к файлу. Он использует объектно-ориентированный подход, чтобы проверить, существует файл или нет.
Заключение:
Используйте path.exists, чтобы проверить, существует ли файл
Используйте path.isfile и path.isdir, чтобы проверить, существует ли путь к файл или каталогу соответственно
В Python 3.4 и более поздних версиях используйте модуль pathlib, чтобы проверить, существует ли файл.
Редакция: Команда webformyself.
Бесплатный курс «Python. Быстрый старт»
Получите курс и узнайте, как создать программу для перевода текстов на Python