Архив рубрики: Публикации

Как проверить, открыт или закрыт файл в Python

Файл используется для постоянного хранения данных. Работа с файлом — очень распространенная задача любого языка программирования. В Python существует множество встроенных функций для создания, открытия, чтения, записи и закрытия файла. Для хранения данных можно создать два типа файлов. Это текстовые файлы и двоичные файлы. Любой файл необходимо открыть перед чтением или записью. Функция open() используется в Python для открытия файла. Использование функции open() — это один из способов проверить, открыт или закрыт конкретный файл. Если функция open() открывает ранее открытый файл, генерируется ошибка IOError. Другой способ проверить, открыт или закрыт файл — это проверить значения свойства closed объекта обработчика файлов. С использованием функции rename() — еще один способ проверить, открыт или закрыт файл. В этой статье показаны различные способы проверки открытия или закрытия любого файла в Python.

 

Создайте файл для проверки:

Вы можете использовать любой существующий файл или создать новый файл, чтобы протестировать пример кода, показанный в этой статьи. Был создан новый текстовый файл с именем clients.txt со следующим содержимым для использования в следующей части статьи.



ID     Name                           Email

01     Andrey Ex                   Andrey***@gmail.com

02     Max Terminator              Max***@gmail.com

03    Alex Murphy                  Alex***@gmail.com


 

Пример-1: проверьте, открыт файл или нет, с помощью IOError

IOError генерируется при вызове функции open() для открытия файла, который был открыт ранее. Создайте файл python со следующим сценарием, чтобы проверить, открыт ли файл или нет, с помощью блока try-except. Здесь любое существующее имя файла будет принято в качестве входных и открыто для чтения. Затем снова вызывается функция open(), чтобы открыть тот же файл, который вызовет ошибку IOError и распечатает сообщение об ошибке.

# Введите имя файла для проверки

filename = input("Введите любое существующее имя файла:n")

# Откройте файл в первый раз с помощью функции open()

fileHandler = open(filename, "r")

# Попробуйте открыть файл с таким же именем снова

try:

with open("filename", "r") as file:

# Распечатать сообщение об успешном завершении

print("Файл открыт для чтения.")

# Вызовите ошибку, если файл был открыт раньше

except IOError:

print("Файл уже открыт")

Вывод:

Здесь в текущем расположении существует файл clients.txt, а сообщение об ошибке «Файл уже открыт» было напечатано для исключения IOError.

 

Пример-2: проверьте, закрыт ли файл, используя свойство closed.

Значение свойства closed будет истинным, если какой-либо файл закрыт. Создайте файл python с помощью следующего сценария, чтобы проверить, закрыт ли файл в текущем местоположении. Предыдущий пример сценария выдаст ошибку, если имя файла, полученное от пользователя, не существует в текущем местоположении. В этом примере эта проблема решена. Модуль os используется здесь для проверки существования имени файла, которое будет взято у пользователя. Функция check_closed() определена для проверки того, закрыт ли файл или нет, которая будет вызываться, если файл существует.

# Импортировать модуль os для проверки существования файла

import os

# Функция Drfine проверяет, закрыт ли файл или нет

def check_closed():

if fileHandler.closed == False:

# Распечатать сообщение об успешном завершении

print("Файл открыт для чтения.")

else:

# Распечатать сообщение об ошибке

print(" Файл закрыт.")



# Взять имя файла для проверки

filename = input(" Введите любое существующее имя файла:  n ")

# Проверить, существует

if os.path.exists(filename):

# Открыть файл для чтения

fileHandler = open(filename, "r")

# Вызвать функцию

check_closed()

else:

# Вывести сообщение, если файл не существует

print("Файл не существует.")

Вывод:

Здесь client.txt существует в текущем месте, и сообщение об успешном завершении «Файл открыт для чтения» напечатано, поскольку значение свойства closed вернуло False.

 

Пример-3: проверьте, открыт файл или нет, с помощью OSError

OSError генерирует , когда функция переименования() вызывается более чем один раз для файла , который открыт уже. Создайте файл Python со следующим сценарием, чтобы проверить, открыт или закрыт файл с помощью OSError. Модуль os использовался в сценарии для проверки существования файла и его переименования. Когда функция rename() вызывается во второй раз, будет сгенерирована ошибка OSError, и будет напечатано настраиваемое сообщение об ошибке.

# Импортировать модуль os для проверки существования файла

import os

# Установить существующее имя файла

filename = 'clients.txt'

# Установить новое имя файла

newname = 'customers.txt'

# Проверить, существует ли файл или нет,

if os.path.exists(filename):

try:

# Вызов функции переименования в первый раз

os.rename(filename, newname)

# Вызов функции переименования во второй раз

os.rename(filename, newname)

# Вызов исключения при ошибки, если если файл открыт

except OSError:

print («Файл все еще открыт».)



else:

# Вывести сообщение, если файл не существует

print("Файл не существует.")

Вывод:

Здесь clients.txt существует в текущем местоположении, и сообщение об ошибке, “File is still opened,” напечатал , потому что OSError исключение генерируется , когда вторая функция rename() выполнена.

 

Вывод:

Когда нам нужно работать с одним и тем же файлом в сценарии несколько раз, важно знать, открыт ли файл или закрыт. Лучше вызвать функцию close(), чтобы закрыть файл после завершения операции с файлом. Ошибка возникает, когда файл открывается во второй раз в том же скрипте, не закрывая его. В этой статье на простых примерах показаны различные решения этой проблемы, которые помогут пользователям Python.



2021-07-24T10:29:04
Python

Риски безопасности Bluetooth

Bluetooth присутствует на рынке с 2000 года и приобрел мировую популярность. Bluetooth помог людям без проблем подключаться к своим устройствам и обмениваться данными через них. Но безопасен ли Bluetooth? Благодаря передовым технологиям вероятность атак и угроз вашей информации, передаваемой через Интернет, также возрастает. Однако технология Bluetooth изменила жизнь многих людей и так или иначе подвержена атакам. Таким образом, соединение Bluetooth имеет свою уникальную уязвимость.

Хакеры постоянно находят новые способы атаковать ваши устройства Bluetooth и украсть ваши данные. Таким образом, инженеры работают и постоянно ищут решение для обеспечения безопасности ваших устройств, подключенных через Bluetooth. Однако, прежде чем переходить к какому-либо решению, сначала нам нужно понять риски и их влияние на устройства.

Начнем с обзора Bluetooth.

 

Что такое Bluetooth?

Устройства Bluetooth стали частью умных технологий. С помощью Bluetooth вы можете подключаться к домашним устройствам, смартфонам, наушникам и другим устройствам. Перед подключением к любому устройству мы должны создать некоторые настройки для устройств. После подключения вы можете поделиться своими данными, но отправка данных может быть уязвима для хакеров и может быть легко взломана. Это может привести к потере ваших личных важных данных, хранящихся на ваших устройствах.

Однако вы никогда не могли представить себе день, когда вы не использовали бы Bluetooth. Но, как и в случае с другими средами обмена данными, Bluetooth также сопряжен с некоторыми рисками кибербезопасности. Например, вы хотите избежать доступа посторонних лиц к данным, передаваемым через Bluetooth.

Не путайте Bluetooth с:

  • Иногда Bluetooth считается защищенной технологией. Однако риски не ограничиваются ее реализацией, но и в конструкции есть недостатки.
  • Bluetooth может иметь широкий диапазон до 100 метров. Он в основном используется для связи на короткие и большие расстояния. Но это не означает, что вы в безопасности, если подключаетесь с помощью междугородних соединений. Вы подвержены атакам каждый раз, когда подключаетесь через Bluetooth.
  • С точки зрения безопасности Bluetooth не является зрелым методом связи. Следовательно, он действует иначе, чем должен быть, если вы используете его через смартфон.

 

Преимущества использования Bluetooth

Ниже приведены некоторые преимущества использования Bluetooth:

  • Это помогает избежать помех от других беспроводных устройств.
  • Потребляет мало энергии.
  • Он легко модернизируется и управляем.
  • Он предлагает лучший диапазон по сравнению с инфракрасной связью.
  • Вы можете использовать его для передачи голоса и данных.
  • Устройства Bluetooth доступны по доступной цене.

 

Уровни Bluetooth

Ниже приведены некоторые уровни Bluetooth. Вы должны знать и понимать их уровни, поскольку их безопасность зависит от уровня и версии.

  • Первый уровень : на этом уровне вы можете связать устройства Bluetooth с любым другим доступным устройством Bluetooth, не проверяя версию. Кроме того, вам не потребуется подтверждение владельца для подключения. Однако такие устройства более подвержены угрозе безопасности ваших данных.
  • Уровень 2: на этом уровне вам потребуется код подтверждения для подключения к устройствам. Риск здесь меньше, чем у устройств первого уровня. Тем не менее, к вашим данным все еще могут проникнуть злоумышленники.
  • Уровень 3: на этом уровне оба устройства меняют коды безопасности на пары, обеспечивая полную безопасность и не оставляя шансов для нарушения безопасности. Однако вы можете столкнуться с ошибками кодирования и сделать ваше устройство уязвимым.
  • Уровень четвертый: на этом уровне устройства следуют строгому и стандартному протоколу аутентификации, гарантирующему безопасность и отсутствие шансов для атак. В результате риски безопасности значительно меньше.

 

Bluetooth-атаки

Ниже приведены некоторые распространенные риски, с которыми вы можете столкнуться при подключении устройств через Bluetooth. Мы подробно обсудим все риски, чтобы понять, как они влияют на устройства и как хакеры используют эти данные.

 

BlueSmacking

Эта атака является способом реализации атаки отказа в обслуживании, которая существует на устройствах Bluetooth. Если вы принадлежите к ИТ-миру, термин «отказ в обслуживании» не нов. Это ситуация, когда цель, такая как сервер, получит большой объем запросов или пакетов, больше, чем он может обработать. В результате сервер будет перегружен входящими запросами и может выйти из строя и выйдет из строя.

Учитывая характер этой атаки, не такой серьезный, как у многих других возможных атак. Вы можете решить эту проблему, мгновенно перезагрузив сервер и сделав его доступным для ваших пользователей. Эта атака использует уровень L2CAP сетевого стека Bluetooth и отправляет огромный объем данных.

 

BlueJacking

Это похоже на угон устройств Bluetooth. Это ситуация, когда одно устройство Bluetooth захватывает другое устройство и перегружает его рекламой спама, снижая производительность устройства. Устройства Bluetooth могут легко покрыть десять метров диапазона вещания, поэтому есть вероятность, что хакер останется в этом диапазоне. Кроме того, другой причиной может быть то, что хакер оставит устройство взлома в пределах досягаемости вашего устройства и будет управлять им извне.

Эта атака будет раздражать владельца несколькими сообщениями. Если вы получаете текстовые сообщения на свой телефон, то это фишинговая атака. Это атака, при которой злоумышленник действует как заслуживающий доверия человек и пытается украсть вашу важную информацию. Такие сообщения могут содержать ссылку на веб-сайт, содержащий вредоносное ПО, которое легко и эффективно извлечет ваши данные.

 

BlueSnarfing

В этих атаках все специфические для Bluetooth эксплойты имеют в своем названии слово «синий». Так что в некотором смысле BlueSnarfing похож на BlueJacking, но представляет собой более серьезную угрозу для пользователей. В случае BlueJacking злоумышленник взорвет ваше устройство спам-данными, но атака BlueSnarfing заберет данные с вашего устройства, что сделает его более уязвимым. Кроме того, злоумышленник может получить любые ваши важные данные через устройства, подключенные по Bluetooth, и привести к более опасной кибератаке.

 

BlueBugging

Это более продвинутый шаг, чем BlueJacking и BlueSnarfing. Эта атака создает бэкдор на устройстве пользователя, подключенном через Bluetooth. Он может предоставить доступ постороннему или злоумышленнику для получения доступа к вашей внутренней и важной информации. Такие атаки используются для отслеживания информации о чьем-либо телефоне. В некоторых случаях такая атака может быть полезна для получения инсайдерской информации с точки зрения закона.

 

Советы по безопасности Bluetooth

Для защиты вашего устройства, которое в основном подключено к Bluetooth, вы можете реализовать несколько методов, чтобы избежать риска взлома. Это поможет вам дистанцироваться от злоумышленников и обеспечить вашу полную безопасность.

  • Обязательно следите за своими устройствами и держите их рядом с собой. Вы даже можете установить приложения «найди мое устройство» на свои устройства и контролировать их.
  • Вы можете защитить паролем свое устройство, чтобы обезопасить свою важную и личную информацию.
  • Никогда не оставляйте устройство в режиме обнаружения. Вы должны убедиться, что эта опция будет включена только при подключении любого устройства.
  • Не забудьте выключить опцию Bluetooth, когда закончите работу. Это не даст злоумышленнику возможности ввести и использовать ваши конфиденциальные данные с вашего устройства.

 

Вывод

Технология Bluetooth не нова, но все еще используется миллионами людей во всем мире. Обмен данными через устройства, подключенные по Bluetooth, прост и удобен, не влияя на качество данных. Но с преимуществами есть некоторые риски. Например, есть вероятность, что ваши данные могут быть взломаны во время передачи. Следовательно, вы должны убедиться, что ваши данные в безопасности при подключении к Bluetooth.

В этой статье упоминаются некоторые риски, связанные с технологией Bluetooth, и то, как мы можем их преодолеть. Мы должны принять меры предосторожности, чтобы избежать таких атак и потери наших конфиденциальных данных. Обеспечение безопасности и сохранности данных — наш главный приоритет. Так что помните об этих указателях и применяйте их в своей повседневной жизни.



2021-07-23T16:19:43
Сети

Как создавать аудиокниги с помощью Python

Как вы, возможно, уже знаете, Python — замечательный инструмент программирования, потому что он позволяет нам делать практически все! Это также означает, что мы можем создавать собственное программное обеспечение. В этой статье мы научимся синтезировать речь, научим Python читать PDF-файлы, даже переведем их для нас, а затем прочитаем их нам.

Здесь мы собираемся заставить Python прочитать нам PDF-файл и перевести его для нас. Сначала мы попробуем создать аудиокнигу на английском языке. Таким образом, первое, что мы должны сделать по логике, — это извлечь текст из PDF. Для этого мы используем модуль tika. Как обычно, чтобы установить Тику, приходится колдовать.

 

pip install tika

Tika — это модуль, используемый для обнаружения и извлечения контента. После установки нам нужно импортировать объект парсера.

 

from tika import parser

Далее нам понадобится метод from_file(), который принимает максимум два аргумента. Первый аргумент — это имя файла pdf, а второй аргумент называется дополнительным, который запрашивает требуемый тип данных. Если оставить дополнительное поле пустым, будет запрашиваться все, от метаданных до контента. Здесь meta возвращает метаданные, text возвращает текст, а param xmlContent возвращает содержимое XML.

raw = parser.from_file('comment.pdf')

 

Когда у нас есть данные, нам нужно извлечь только текст. Мы делаем это, выбирая «контент» из необработанного.

raw_text = raw['content']

 

Проблема с Tika в том, что она может вылетать из-за слишком большого количества страниц. Итак, воспользуемся и другим методом. Если PDF-файл короткий и приятный, обязательно используйте Tika. Однако вы также можете использовать модуль PyPDF2.

pip install PyPDF2

 

Итак, начнем:

import PyPDF2

 

Сначала мы открываем интересующий документ и читаем из него с помощью метода open() и класса PdfFileReader(). Метод open() принимает здесь два аргумента: первый — это имя файла для чтения, а второй — режим чтения. Здесь «rb» означает чтение двоичного файла. Затем класс PdfFileReader берет на себя pdf_document.

pdf_document = open("welcome.pdf", "rb")

pdf_document_read = PyPDF2.PdfFileReader(pdf_document)

 

Затем мы собираем общее количество страниц с помощью метода numPages. Мы сделаем это, поскольку мы создадим цикл for, который переходит от страницы 1 к последней странице, читая каждую страницу по мере ее продвижения.

number_of_pages = pdf_document_read.numPages

 

Затем мы начинаем цикл for для обратного отсчета каждой страницы.

for page in range(1, number_of_pages):

 

Затем нам нужно получить одну страницу с помощью метода getPage() и извлечь текст изнутри с помощью метода extractText().

one_page = pdf_document_read.getPage(page)

raw_text = one_page.extractText()

import pyttsx3

 

Сначала мы инициализируем модуль с помощью init().

engine = pyttsx3.init()

 

Мы можем установить голоса, громкость и скорость с помощью engine.getProperty(). SetProperty() принимает два значения: свойство, которое нужно изменить, и его значение. В данном случае мы установили женские голоса (voices [1] .id) с максимальной громкостью (1) и скоростью 128.

voices = engine.getProperty('voices')

engine.setProperty('voice', voices[1].id)



volume = engine.getProperty('volume')

engine.setProperty('volume', 1.0)



rate = engine.getProperty('rate')

engine.setProperty('rate', 128)

 

Затем мы используем engine.say(), чтобы синтезировать речь и прочитать текст вслух.

engine.say(raw_text)



engine.runAndWait()

 

Полный код будет выглядеть примерно так:

import PyPDF2



pdf_document = open("welcome.pdf", "rb")

pdf_document_read = PyPDF2.PdfFileReader(pdf_document)

number_of_pages = pdf_document_read.numPages



for page in range(1, number_of_pages):

    one_page = pdf_document_read.getPage(page)

    raw_text = one_page.extractText()

    import pyttsx3

    engine = pyttsx3.init()

    voices = engine.getProperty('voices')

    engine.setProperty('voice', voices[1].id)

    volume = engine.getProperty('volume')

    engine.setProperty('volume', 1.0)

    rate = engine.getProperty('rate')

    engine.setProperty('rate', 128)

    engine.say(raw_text)



    engine.runAndWait()

 

В предыдущем примере английский текст произносился на английском языке. Теперь мы попробуем перевести текст на другой язык и прочитать переведенный текст вслух. В случаях при переводе текста первая часть кода аналогична предыдущему разделу. Требуется код вплоть до кода PyPDF2 включительно. Однако после запуска цикла for мы немного изменим код. Здесь нам нужно добавить перевод и заставить его говорить с акцентом на языке назначения.

Сначала установите googletrans.

pip install googletrans

 

Теперь приступим к переводу текста.

from googletrans import Translator

 

Затем мы вызываем Translator().

translator = Translator()

 

Мы используем метод translate(). Здесь мы вводим первый аргумент — текст для перевода — и целевой язык — язык, на который текст должен быть преобразован. В данном случае мы решили перевести текст на французский (или на «fr»).

translated = translator.translate(raw_text, dest='fr')

 

После того, как мы перевели текст, нам нужно извлечь текстовую часть.

translated_2 = translated.text

 

Последний переведет и сохранит переведенный текст в переменной translated_2. Теперь нам нужен модуль, который будет переводить и сохранять озвученный текст в mp3. Для этого нам понадобятся gTTS и PlaySound:

pip install gTTS

pip install playsound



import gtts

from playsound import playsound

 

У класса gtts.gTTS() есть несколько аргументов. Однако здесь мы будем использовать только два аргумента. Первый аргумент — это текст, который нужно прочитать, а второй — язык, на котором будет читаться текст. В данном случае мы решили прочитать текст на французском языке (fr). Причина, по которой мы используем здесь gTTS вместо pyttsx3, заключается в больших акцентах, которые ставятся в прочитанном абзаце. Таким образом, когда текст читается на французском языке с помощью gTTS, это будет звучать так, как будто текст читает француз, а не носитель английского языка.

text = gtts.gTTS(translated_2, lang="fr")

 

Далее сохраняем озвученный текст в mp3. В данном случае я назвал его text.mp3:

text.save("text.mp3")

 

Чтобы воспроизвести сохраненный mp3, мы используем playsound():

playsound("text.mp3")

 

Полный код будет выглядеть примерно так:

import PyPDF2



pdf_document = open("welcome.pdf", "rb")

pdf_document_read = PyPDF2.PdfFileReader(pdf_document)

number_of_pages = pdf_document_read.numPages



for page in range(1, number_of_pages):

    one_page = pdf_document_read.getPage(page)

    raw_text = one_page.extractText()



    from googletrans import Translator

   

    translator = Translator()

    translated = translator.translate(raw_text, dest='fr')

    translated_2 = translated.text



    import gtts

    from playsound import playsound



    tts = gtts.gTTS(translated_2, lang="fr")

    tts.save("text.mp3")

    playsound("text.mp3")



2021-07-23T11:23:24
Python

Выпуск Windows 11: чего ожидать

Microsoft Windows 11 еще нет, но мы, вероятно, увидим ее позже в ноябре этого года. С момента  выхода Windows 10 прошло довольно много времени, если быть точным, шесть лет. А пользователям ПК давно пора на новую операционную систему. Но стоит ли вам сейчас обновляться?

 

Выпуск Windows 11: чего ожидать

Microsoft якобы упростила дизайн Windows 11, чтобы расширить пользовательский интерфейс и тем самым повысить вашу продуктивность. Судя по первым фотографиям, появившимся в Интернете, новая Windows 11 больше похожа на версию мобильной ОС Android с обновленными приложениями и значками. В целом, он выглядит чище благодаря закругленным углам и пастельно-синей цветовой гамме.

Подтвержденные изменения:

  • Кнопка «Пуск» перемещена в центр экрана рабочего стола.
  • Функция  чата  из  Microsoft Teams  интегрируется в панель задач.
  • Настраиваемые  виджеты,  проверенные Microsoft по сравнению со старой версией Vista.
  • Microsoft реализует некоторые функции  Xbox, такие как  Directx 12 Ultimate,  Auto HDR и  DirectStorage, в новой Windows 11 для улучшения игрового и визуального опыта.

Чтобы соответствовать обновленному виду, Windows 11 получает новые звуковые уведомления, включая новый сигнал запуска.

 

Работа и учеба из дома в Windows 11

Технологии сейчас более важны для нас, поскольку многие из нас продолжают учиться и  работать из дома  после пандемии. А новая Windows 11 призвана создать поддерживающую гибридную среду, предлагая более оптимизированные вычислительные возможности и повышенную безопасность.

Например, Microsoft Office станет более наглядным, включая возможность перехода в темный режим внутри программы. А любимое корпоративное приложение Microsoft Teams позволит пользователям открывать общий доступ к экранам рабочего стола во время собраний прямо с панели задач.

Эти и другие, казалось бы, незначительные улучшения сделают вашу удаленную работу и обучение немного более эффективными и, следовательно, более приятными.

 

Минимальные системные требования для Windows 11

  • Процессор ЦП: 1 гигагерц (ГГц) или выше, минимум двухъядерный
  • Оперативная память: 4 ГБ ОЗУ
  • Хранение: не менее 64 ГБ
  • Системная прошивка:  UEFI, возможность безопасной загрузки
  • Видеокарта: совместимая с DirectX 12 графика / WDDM 2.x
  • Дисплей:  разрешение HD (720p), диагональ экрана должна быть больше 9 дюймов.
  • Связь:  требуется подключение к Интернету и  учетная запись Microsoft. Установка Windows 11.

 

Те, кто купит новый ПК до официальной даты выпуска, имеют право на бесплатное обновление до Windows 11. Кроме того, нынешние пользователи Windows 10 также смогут бесплатно обновлять свое программное обеспечение.

 

Дата выпуска Windows 11

Microsoft еще не установила дату выпуска, но участники могут загрузить бета-версию через программу предварительной оценки Windows. Что касается официальной розничной версии, мы ожидаем увидеть ее ближе к праздникам в 2021 году, и она продолжит выпускаться в 2022 году.

 

Как скачать пост-релиз Windows 11

Процедура обновления такая же, как и раньше. Если вы используете Windows 10 на  настольном компьютере  или ноутбуке, выполните следующие действия, чтобы загрузить Windows 11, когда она станет доступной:

  1. Зайдите в  Настройки  —  Обновление и безопасность  —  Центр обновления Windows.
  2. Щелкните  Проверить наличие обновлений. Здесь вы должны увидеть  обновление компонентов для Windows 11.
  3. Нажмите  Загрузить и установить,  чтобы продолжить обновление.

 

Что делать, если ваш портативный компьютер не подходит для бесплатного обновления

Если по какой-либо причине вы не можете бесплатно загрузить новую версию Windows 11 после ее выпуска, но действительно хотите попробовать ее, возможно, имеет смысл  продать свой ноутбук  и обновить его. Как упоминалось выше, те, кто купил новое устройство ПК до даты выпуска, могут легко перейти на последнюю версию Windows 11.

Microsoft тесно сотрудничает с такими брендами, как  Dell,  HP,  Samsung и, конечно же, с их собственной Surface, чтобы убедиться, что эти ПК-устройства готовы без проблем запускать Windows 11.

 

В заключение

Большинство пользователей Windows 10 смогут бесплатно перейти на Windows 11 через некоторое время после официального выпуска. Но если вы хотите попробовать это сейчас, вы можете зарегистрироваться в качестве участника программы предварительной оценки Windows, если вы еще этого не сделали, и загрузить бета-версию. Просто имейте в виду, что он, скорее всего, будет глючить, не позволяйте ему отговаривать вас от обновления, когда придет время.

Итак, какие новые функции Windows 11 вам больше всего нравятся?



2021-07-23T11:04:51
Microsoft

Анализ криптовалюты. Основы Python для финансов. Часть 2

Начало работы с Python для финансов:

Мы извлечем различные цены на криптовалюту из Yahoo Finance. Давайте начнем с импорта библиотек.

import warnings

warnings.filterwarnings('ignore')  # Скрыть предупреждения

import datetime as dt

import pandas as pd

pd.core.common.is_list_like = pd.api.types.is_list_like

import pandas_datareader.data as web

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns



import matplotlib.dates as mdates

import plotly.express as px

start = dt.datetime(2021, 1, 1)

end = dt.datetime(2021,5,29)

Мы устанавливаем начальную и конечную даты данных.

btc = web.DataReader("BTC-USD", 'yahoo', start, end)  # Collects data

btc.reset_index(inplace=True)




 

Биткойн

«BTC-USD» указывает цены на биткойны в долларах США. Итак, мы извлекаем цены на биткойны.

#bitcoin



crypto= btc[['Date','Adj Close']]

crypto= crypto.rename(columns = {'Adj Close':'BTC'})

# 7-дневная скользящая средняя



crypto[ 'BTC_7DAY_MA' ] = crypto.BTC.rolling( 7).mean()

Скользящее среднее или скользящее среднее — это способ анализа точек данных путем создания серии средних значений данных, уже имеющихся в данных. Здесь мы рассчитываем средние цены на основе данных о цене биткойнов за предыдущие 7 дней. Скользящие средние часто используются в техническом анализе.

 

Ethereum

Далее мы пробуем Ethereum. Ethereum — вторая по величине криптовалюта по рыночной капитализации после биткойна. Ethereum был запущен 30 июля 2015 года с 72 миллионами монет.

#Ethereum



eth = web.DataReader("ETH-USD", 'yahoo', start, end)  # Collects data

eth.reset_index(inplace=True)

crypto["ETH"]= eth["Adj Close"]



# 7-дневная скользящая средняя

crypto[ 'ETH_7DAY_MA' ] = crypto.ETH.rolling( 7).mean()

 

Dogecoin

Далее идет Dogecoin. Мы уже обсуждали Dogecoin. Он был представлен 6 декабря 2013 года.

#doge coin



doge = web.DataReader("DOGE-USD", 'yahoo', start, end)  # Collects data

doge.reset_index(inplace=True)

crypto["DOGE"]= doge["Adj Close"]



# 7-дневная скользящая средняя

crypto[ 'DOGE_7DAY_MA' ] = crypto.DOGE.rolling( 7).mean()

 

BinanceCoin

Далее мы переходим к Binance Coin. Binance был запущен в июле 2017 года и основан на сети Ethereum. Но у Binance есть собственный блокчейн, цепочка Binance.

#BinanceCoin 



bnb = web.DataReader("BNB-USD", 'yahoo', start, end)  # Collects data

bnb.reset_index(inplace=True)

crypto["BNB"]= bnb["Adj Close"]



# 7-дневная скользящая средняя

crypto[ 'BNB_7DAY_MA' ] = crypto.BNB.rolling( 7).mean()

 

Cardano

Далее берем Cardano. Cardano — это общедоступная блокчейн-платформа, и одноранговые транзакции поддерживаются ее криптовалютой ADA. Он был запущен в сентябре 2017 года.

#Cardano



ada = web.DataReader("ADA-USD", 'yahoo', start, end)  # Collects data

ada.reset_index(inplace=True)

crypto["ADA"]= ada["Adj Close"]





# 7-дневная скользящая средняя

crypto[ 'ADA_7DAY_MA' ] = crypto.ADA.rolling( 7).mean()

 

Ripple — это платежная система и платформа для обмена валют, которую можно использовать для обработки транзакций по всему миру. XRP вычитается как небольшая комиссия всякий раз, когда пользователи совершают транзакцию с помощью Ripple.

 

#XRP



xrp = web.DataReader("XRP-USD", 'yahoo', start, end)  # Collects data

xrp.reset_index(inplace=True)

crypto["XRP"]= xrp["Adj Close"]



# 7-дневная скользящая средняя

crypto[ 'XRP_7DAY_MA' ] = crypto.XRP.rolling( 7).mean()

 

Dash

Dash — это криптовалюта с открытым исходным кодом. Он был разветвлен из протокола Биткойн. Он был запущен в январе 2014 года.

#Dash



dash = web.DataReader("DASH-USD", 'yahoo', start, end)  # Collects data

dash.reset_index(inplace=True)

crypto["DASH"]= dash["Adj Close"]



 # 7-дневное скользящее среднее

crypto[ ‘DASH_7DAY_MA’ ] = crypto.DASH.rolling( 7).mean()

Теперь, имея под рукой данные, форматируем даты.

#получение дат



crypto.set_index("Date", inplace=True)

Теперь давайте посмотрим на данные.

crypto[['BTC','ETH','DOGE','BNB','ADA','XRP','DASH']].head()

Как мы видим, все данные были извлечены правильно.

 

Теперь давайте проверим корреляцию между данными.

crypto[['BTC','ETH','DOGE','BNB','ADA','XRP','DASH']].corr()

Теперь у нас есть несколько интересных открытий. Все точки данных имеют высокую корреляцию друг с другом. Давайте просто сравним биткойн с другими, даже самая низкая корреляция с DOGE составляет 0,237, что является довольно хорошим значением. Dash, разветвленный из BTC, имеет самую высокую корреляцию с BTC на уровне 0,77.

Глядя на другие точки данных, BNB и XRP имеют высокую корреляцию 0,93, что является чрезвычайно высоким показателем. Как будто они одного и того же значения.

Теперь давайте разберемся, почему? Что ж, это просто. Рынок криптографии следует тенденциям. Когда биткойн и Dogecoin росли, другие монеты также росли в цене. В основном это было связано с общественным мнением относительно криптовалюты. Кто не хочет круто выглядеть перед друзьями, говоря, что они принесли криптовалюту?

Точно так же, когда упали значения BTC и DOGE, упали и другие. Это было похоже на цепную реакцию.

 

Давайте посмотрим на тепловую карту корреляции.

#Тепловая карта



plt.figure(figsize = (10,10))

sns.heatmap(crypto[['BTC','ETH','DOGE','BNB','ADA','XRP','DASH']].corr(),annot=True, cmap='Blues')



Тепловая карта четко показывает высокую корреляцию между ценами на все криптовалюты.

 

Построим данные с помощью Plotly Express.

fig = px.line(crypto, y=["BTC",'ETH','DOGE','BNB','ADA','XRP','DASH'] )

fig.show()

Что ж, ясен только обвал BTC в середине мая 2021 года. Но давайте посмотрим на значения 7-дневной скользящей средней BTC.

fig = px.line(crypto, y=['BTC_7DAY_MA'] )

fig.show()

В Plotly интересно то, что мы можем взаимодействовать с Plot и получать точные значения, как в Power BI.

Здесь хорошо видно, что цена BTC внезапно выросла в феврале 2021 года после всех этих твитов и шума в социальных сетях. И вдруг в мае 2021 года все рухнуло.

 

Давайте попробуем Ethereum.

fig = px.line(crypto, y=['ETH'] )

fig.show()

И очевидно, что ETH также следует аналогичной схеме. В конце апреля 2021 года все увидели резкий рост цен на BTC и DOGE и купили ETH. Это привело к внезапному росту цены ETH.

 

Значения скользящего среднего:

fig = px.line(crypto, y=['ETH_7DAY_MA'] )

fig.show()

Гора падала так же быстро, как и поднималась. Люди, купившие по высокой цене, понесли огромные убытки.

 

DOGE:

fig = px.line(crypto, y=['DOGE'] )

fig.show()

Взлеты и падения DOGE также интересны. В январе 2021 года DOGE была ничем, а в начале мая 2021 года она сильно выросла. И его падение тоже было внезапным.

 

Значения скользящего среднего:

fig = px.line(crypto, y=['DOGE_7DAY_MA'] )

fig.show()

Код для построения всех остальных данных почти такой же.

 

Вывод

Теперь мы в значительной степени понимаем, что вызвало сбой. Кажется, что весь рынок криптовалют связаны друг с другом. Люди видят, как кто-то покупает BTC, они идут покупать ETH. Кто-то продает DOGE, они также продают свои BTC. Все взаимосвязано.

Рынок криптовалют очень волатилен, различные факторы приводят к бешеной распродаже. Одна из крупнейших криптовалютных бирж в мире, Coinbase, столкнулась с перебоями в обслуживании во время этой распродажи. Многие инвесторы в криптовалюту инвестировали, потому что они думали, что Тесла и Илон Маск были в биткойнах, и думали об этом как о следующем шаге в области финансов и валюты.

Многие критики говорят, что отсутствие регулирования и манипуляции ценами делают криптовалюту рискованной для новых инвесторов, и многие люди этой осенью потеряли свои деньги.

 

Начало:



2021-07-23T09:40:30
Python

Анализ криптовалюты. Основы Python для финансов

Криптовалюта служит цифровым активом и средством обмена между людьми, где записи о владении монетами хранятся в защищенной компьютеризированной базе данных. Они названы так потому, что сложная криптография помогает создавать и обрабатывать эти цифровые валюты и транзакции в децентрализованных системах. Читать