def show_text_in_window(text: str):
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.geometry("600x800")
frame_widget = ttk.Frame(root)
frame_widget.pack(fill=tk.BOTH, expand=True)
scrollbar_widget = ttk.Scrollbar(frame_widget)
scrollbar_widget.pack(side=tk.RIGHT, fill=tk.Y)
text_widget = tk.Text(
frame_widget,
yscrollcommand=scrollbar_widget.set,
wrap=tk.WORD,
)
text_widget.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar_widget.config(command=text_widget.yview)
text_widget.insert(tk.END, text)
text_widget.config(state=tk.DISABLED) # Только для чтения
root.mainloop()
show_text_in_window("Наш длинный текст")
Архив рубрики: Без рубрики
Добавить комментарий
Python — разница во времени для людей
>>> def time_diff(t1: str, t2: str) -> str:
... def to_seconds(t: str) -> int:
... minutes, seconds = map(int, t.split(':'))
... return minutes * 60 + seconds
... diff_seconds = abs(to_seconds(t1) - to_seconds(t2))
... minutes = diff_seconds // 60
... seconds = diff_seconds % 60
... return f"{minutes}:{seconds:02d}"
...
>>> time_diff("9:56", "18:37")
'8:41'
dconf-editor
Установка Ventoy на флэшку из Linux
= Зачем нужен Ventoy
Ventoy делает флэшку загрузочной, создаёт на ней папку для iso-файлов с установочными и просто live-дисками операционных систем (Linux, Windows и т.д.), при включении компьютеров открывает меню с их списком и запускает загрузку выбранного образа. Это позволяет не перезаливать всю флэшку через UnetBootin или Balena Etcher, а просто скопировать нужный iso-файл на флэшку.
ПРЕДУПРЕЖДЕНИЕ: если что-то перепутать, то можно случайно потерять данные на других дисках!
Порядок установки Ventoy на флэшку из Linux:
- Зайти на https://www.ventoy.net/en/download.html
- Скачать ventoy-1.0.99-linux.tar.gz (или какая версия там будет)
- Для скаченного файла проверить в консоли sha256-сумму (правильная есть на странице загрузки)
$ sha256sum ventoy-1.0.99-linux.tar.gz
467cdd188a7f739bc706adbc1d695f61ffdefc95916adb015947d80829f00a3d ventoy-1.0.99-linux.tar.gz
- Распаковать архив
- В командной строке перейти в папку со скриптом Ventoy2Disk.sh
- Подключить к компьютеру флэшку, на которую будем устанавливать
- Запустить gparted, найти путь к нужной флэшке (например /dev/sdb)
- Закрыть gparted (больше он не нужен)
- В терминале запустить установку Ventoy следующей командой:
$ sudo bash Ventoy2Disk.sh -i /dev/sdb
[sudo] пароль для user:
**********************************************
Ventoy: 1.0.99 x86_64
longpanda admin@ventoy.net
https://www.ventoy.net
**********************************************
Disk : /dev/sdb
Size : 14 GB
Style: MBR
Attention:
You will install Ventoy to /dev/sdb.
All the data on the disk /dev/sdb will be lost!!!
Continue? (y/n) y
All the data on the disk /dev/sdb will be lost!!!
Double-check. Continue? (y/n) y
Create partitions on /dev/sdb by parted in MBR style ...
Done
Wait for partitions ...
partition exist OK
create efi fat fs /dev/sdb2 ...
mkfs.fat 4.1 (2017-01-24)
success
Wait for partitions ...
/dev/sdb1 exist OK
/dev/sdb2 exist OK
partition exist OK
Format partition 1 /dev/sdb1 ...
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
mkexfatfs success
writing data to disk ...
sync data ...
esp partition processing ...
Install Ventoy to /dev/sdb successfully finished.
$
Linux — Монтирование обычного файла как диска
- создать файл
python3 -c «for _ in range(1000000000): print(«00000000″)» > filedisk
^CTraceback (most recent call last):
File «», line 1, in
KeyboardInterrupt - parted
parted filedisk
(parted) mklabel gpt
(parted) mkpart primary ext4 1MB 500MB
(parted) print
…
Размер сектора (логич./физич.): 512B/512B
Таблица разделов: gpt
Флаги диска:
Номер Начало Конец Размер Файловая система Имя Флаги
1 1049kB 500MB 499MB ext4 primary - fdisk
fdisk -lu filedisk - losetup 1
sudo losetup /dev/loop101 filedisk - gparted отформатировать раздел внутри файла
gparted /dev/loop101 - losetup 2
sudo losetup -d /dev/loop101
sudo losetup -o 1048576 /dev/loop101 filedisk - fsck
sudo fsck -fv /dev/loop101 - mount
sudo mount /dev/loop101 mounted/ - umount
sudo umount mounted
sudo losetup -d /dev/loop101
Просмотр картинок из датасета mnist через matplotlib (Python)
Имеем установленные модули matplotlib и tensorflow, хотим посмотреть на картинки из датасета mnist. Код:
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
import matplotlib.pyplot as plt
for i in range(20):
data = x_train[i]
plt.imshow(data)
plt.show()
В результате будут нарисованы в виде графиков matplotlib первые 20 цифр из тренировочного датасета
Путь к домашней папке пользователя в Python
# 1
from pathlib import Path
home_dir = Path.home()
# 2
import os
home_dir = os.path.expanduser('~')
bash несколько способов генерации случайных чисел
# RANDOM_NUMBER=`perl -e 'print int rand 10000000, "\n"; '`
RANDOM_NUMBER=`python3 -c "import random; print(str(random.randint(1, 999999999)).zfill(10))"`
$ jot -r 1 0 100
54
$ jot -r 1 0 100
7
$ jot -r 1 0 100
48
bash + json
$ jq --help
jq - commandline JSON processor [version 1.7]
Usage: jq [options] <jq filter> [file...]
sh принять ввод в переменную
DATA=$(tee)
