Как проверить пустой ли файл csv Python
В некоторых ситуация программа ничего не добавляет в файл csv, данные из которого (если они есть) должны использоваться в следующих шагах. Как перед следующим шагом проверить есть ли что-то в файле?
with open("itog.csv", newline='') as r: reader = csv.reader(r, delimiter=';')
Отслеживать
задан 2 янв 2020 в 18:04
ChikChirik ChikChirik
514 2 2 золотых знака 13 13 серебряных знаков 41 41 бронзовый знак
проверить, пустой ли файл или нет: stackoverflow.com/questions/2507808/…
2 янв 2020 в 18:18
Файл из пробелов пустой или нет?
2 янв 2020 в 21:48
На правах догадки: по количеству элементов в списке readlines() если предполагается что заголовки полей в «пустом» файле должны присутствовать то количество элементов будет == 1 для «пустого» файла. Если же не предполагается наличие строки заголовков то == 0. Но если в пустом файле могут быть и заголовки и строки из одних разделителей тогда уже надо по другому
Определить, является ли файл пустым в Python
В этом посте мы обсудим, как определить, является ли файл пустым в Python.
Вы можете легко проверить наличие пустого файла в Python с помощью узнать размер файла, который должен быть 0 байт. Есть несколько способов сделать это:
1. Использование os модуль
The os.stat() функция возвращает stat_result объект, чьи st_size атрибут хранит размер файла в байтах.
isempty = os . stat ( ‘path\to\file\filename.ext’ ) . st_size == 0
print ( isempty )
В качестве альтернативы вы можете использовать os.path.getsize() функция для получения указанного размера файла в байтах.
Проверка наличия файла или каталога в R
Для этого примера мы создали файл myfile.txt и каталог my_test_folder .
Как проверить наличие файла?
Наличие файла легко проверить с помощью команды file.exists() из базового пакета. Посмотрите следующий пример:
if (file.exists("myfile.txt")) <
print("The file exists")
> else <
print("The file does not exist")
>
[1] "The file exists"
Попробуем теперь с файлом, которого не существует:
if (file.exists("nofile.txt")) <
print("The file exists")
> else <
print("The file does not exist")
>
[1] "The file does not exist"
Обратите внимание, что выражение if not file exists записывается также и с добавлением ! внутри оператора if вот таким образом:
if (!file.exists("myfile.txt"))
Кроме того, при необходимости создать пустой файл выполняется такая команда:
file.create("mynewfile.txt")
Как проверить наличие каталога?
По аналогии с проверкой наличия файла, при которой используется file.exists() , наличие каталогов проверяется с помощью команды dir.exists() . Например:
if (dir.exists("my_test_folder")) <
print("The directory exists")
> else <
print("The file does not exist")
>
[1] "The directory exists"
Теперь выполним следующее упражнение. Проверим, есть ли каталог. Если его нет, создадим новый:
if (dir.exists("my_new_folder")) <
print("The directory exists")
> else <
# создаем "my_new_folder
dir.create("my_new_folder")
>
Папка my_new_folder создается в нашем рабочем каталоге.
Проверка наличия файла или каталога в Python
Для этого примера опять же используем файл myfile.txt и каталог my_test_folder .
Как проверить наличие файла?
Здесь мы будем работать с модулем os :
import os.pathif os.path.isfile('myfile.txt'):
print("The file exists")
else:
print("The file does not exist")
Кроме того, здесь задействуется модуль pathlib :
from pathlib import Path
my_file = Path("myfile.txt")
if my_file.is_file():
print("The file exists")
else:
print("The file does not exist")
В Python есть возможность создать пустой файл с помощью команды with open(filename.txt, ‘w’) . Например:
import osif not os.path.isfile('myfile.txt'):
with open('myfile.txt', 'w'): pass
if not os.path.isfile('myfile.txt'):
file_name = 'myfile2.txt'
f = open(file_name, 'w')
f.close()
При открытии файла помните о следующих режимах:
w режим записи
r режим чтения
a режим добавления
w+ файл создается, если его нет, и открывается в режиме (пере-)записи
[если файл уже существует, он перезаписывается]
r+ существующий файл открывается в режиме чтения и записи
a+ файл создается, если его нет, и открывается в режиме добавления
Как проверить наличие каталога?
Это, опять же, аналогично проверке наличия файла:
import os.pathif os.path.isdir('my_test_folder'):
print("The directory exists")
else:
print("The directory does not exist")
The directory exists
Каталог создается следующим образом:
import os
if not os.path.isdir('my_folder'):
os.makedirs('my_folder')
Чтобы проверить, существует ли объект Path независимо или является файлом/каталогом, используется exists() :
from pathlib import Pathmy_file = Path("/path/to/file")
if my_file.exists():
# path существует
Или с помощью модуля os :
import os.pathpath.exists("myfile.txt")
Проверка наличия файла или каталога в Bash
Как проверить наличие файла?
Для этого примера снова используем файл myfile.txt и каталог my_test_folder . Здесь мы будем работать с флагом -f , с помощью которого проверяется наличие обычного файла, а не каталога.
Задействуем скрипт mycheck.sh , который выглядит следующим образом:
if [ -f myfile.txt ]
then
echo "The file exists"
else
echo "The file does not exist"
fi
Как и ожидалось, файл существует. Теперь при необходимости создать пустой скрипт выполняется такая команда:
touch filename.txt
Как проверить наличие каталога?
Здесь используем флаг -d . Задействуем скрипт dircheck.sh :
if [ -d my_test_folder ]
then
echo "The directory exists"
else
echo "The directory does not exist"
fi
Мы получили сообщение о том, что каталог существует.
Обратите внимание, что для создания каталога выполняется следующая команда:
mkdir yourdirectory
Отметим также, что выражение if not содержит символ ! :
if [ ! -d my_test_folder ]
И в завершение приведем перечень необходимых флагов для проверки файлов и каталогов в Bash:
- -b filename — блочный файл устройств.
- -c filename — символьный файл устройств.
- -d directoryname — проверка наличия каталога.
- -e filename — проверка наличия файла независимо от типа (узел, каталог, сокет и т. д.).
- -f filename — проверка наличия обычного файла, а не каталога.
- -G filename — проверка, существует ли файл и принадлежит ли он эффективному идентификатору группы.
- -G filename set-group-id — True , если файл существует и у него set-group-id (установка идентификатора группы во время выполнения).
- -k filename — дополнительный атрибут и специальный тип разрешений файла/каталога Sticky bit.
- -L filename — символическая ссылка.
- -O filename — True , если файл существует и принадлежит эффективному идентификатору пользователя.
- -r filename — проверка, доступен ли файл для чтения.
- -S filename — проверка, является ли файл сокетом.
- -s filename — проверка ненулевого размера файла.
- -u filename — проверка, установлен ли для файла бит set-user-id (установка идентификатора пользователя во время выполнения).
- -w filename — проверка, доступен ли файл для записи.
- -x filename — проверка, является ли файл исполняемым.
- 5 важных аспектов замыканий в Python
- Создание GUI PyWebIO для удаления пакетов Python
- Наследование и полиморфизм в Python
Как проверить если список пуст в Python
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.
По статье задано0 вопрос(ов)
Подписка на обсуждение 4
Подписка на раздел 73
Вам это нравится? Поделитесь в социальных сетях!
- Анатолий Жучков
- #
- 13 апреля 2020 г. 19:25
#empty list list_1 = [] #ноль, пустой кортеж, пустой список, пустая строка принимаются как False if not list_1: print('yes! the list is empty.')
- Ильнур Гайфутдинов
- #
- 14 апреля 2020 г. 11:12
- (ред.)
Автор, очень плохой совет, не делайте так никогда.
делайте как написал Анатолий Жучков, в коментариях
- Said Py → Анатолий Жучков
- #
- 15 апреля 2020 г. 6:16
thanks
but if i wanna to check if list is exists how can i do that?
- Evgenii Legotckoi → Said Py
- #
- 15 апреля 2020 г. 13:11
It works similar. If list not exists, then list is None
if list_1: print('yes! the list is not None')Therefore the following code is right
list_1 = None if not list_1: print('the list is empty or None')
- Evgenii Legotckoi → Said Py
- #
- 15 апреля 2020 г. 13:16
I am admin of this site, and I want ask you add special separator in your articles, like this
This is special separator, which separate preview part from main part of article. Please, use it in articles (notes) on this site.
I think you saw some changes in articles after first publication. Just I made moderation and some cleaning of article for improvement of content.
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Последние комментарии
Павел Дорофеев29 октября 2023 г. 0:48
Как написать свой QTableView Итак начинаем писать свои виджеты на основе QAbstractItemView. А что так можно было?
mihamuz15 октября 2023 г. 23:28
Evgenii Legotckoi15 октября 2023 г. 18:47
Выпуск Qt Visual Studio Tools 2.3.1 Добрый день. Нет, не подскажу. Не пользуюсь Visual Studio для проектов на Qt.
mihamuz14 октября 2023 г. 3:01
Выпуск Qt Visual Studio Tools 2.3.1 Доброй ночи. Вы случайно не знаете как настроить редактор Visual Studio 2019 на работу с QML. Подсветка кода работает а подсказки нехотят появлятся. Расширение Qt установлено версия 3.…
IscanderChe13 сентября 2023 г. 19:11
Пример использования QScintilla C++ По горячим следам (с другого форума вопрос задали, пришлось в памяти освежить всё) решил дополнить. Качаем исходники с https://riverbankcomputing.com/software/qscintilla/downlo…
Сейчас обсуждают на форуме
Михаил Лебедев24 октября 2023 г. 13:51
Разные иконки в QTreeView для раскрытых и свернутых веток Решено. через setData в модели.
Виктор Калесников20 октября 2023 г. 14:29
Контакты Android делал в далеком 2017г поэтому особенно ничего не подскажу. Это основные методы получения данных с андроида используя Qt. Там еще какоето колдунство с манифестом. Андроидом давно не занимаюс…
mihamuz19 октября 2023 г. 0:03
Скачать Qt 6 Сработал следующий алгоритм. Инстолятор скачал используя это https://freevpnplanet.com/ru/ как расширение браузера. Потом установил это https://freevpnplanet.com/ru/ же на ПК и через инстолятор …
IscanderChe17 сентября 2023 г. 19:24
Интернационализация строк в QMessageBox Странная картина. Сделал минимально работающий пример - всё работает. Попробую на другой операционке. Может, дело в этом.
NSProject17 сентября 2023 г. 18:49
Помогите добавить Ajax в проект В принципе ничего сложного с отправкой на сервер нет. Всё что ты хочешь отобразить на странице передаётся в шаблон и рендерится. Ты просто создаёшь файл forms.py в нём описываешь свою форму и в …