πŸ’Ύ Archived View for any-key.press β€Ί python β€Ί python3.11-tools.gmi captured on 2024-09-29 at 00:13:27. Gemini links have been rewritten to link to archived content

View Raw

More Information

➑️ Next capture (2024-12-17)

-=-=-=-=-=-=-

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹, встроСнныС Π² Python

ΠŸΠΎΡ‡Ρ‚ΠΈ Π½Π° всСх ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… (Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽ я) установлСн Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°ΠΉΡ‚ΠΎΠ½. А вмСстС с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π―, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π°Π²Π½ΠΎ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ http.server для пСрСброса Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ машинами ΠΎΠ΄Π½ΠΎΠΉ сСти. Или json.tool для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎ-Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ отобраТСния json-Π΄Π°Π½Π½Ρ‹Ρ… (хотя постоянно Π·Π°Π±Ρ‹Π²Π°ΡŽ ΠΎΠΏΡ†ΠΈΡŽ --no-ensure-ascii для отобраТСния русскоязычных строк).

Π’ΠΎΡ‚ я ΠΈ Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ³Ρ€Π΅ΠΏΠ°Ρ‚ΡŒ стандартныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python 3.11 Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ встроСнных ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚.

Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π£ мСня Π½Π΅Ρ‚ ТСлания Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ здСсь ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… описаниС Ρ€Π΅ΠΆΠΈΠΌΠ° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° сайтС docs.python.org, я просто ΠΎΡΡ‚Π°Π²Π»ΡŽ ссылки:

The calendar module can be executed as a script from the command line to interactively print a calendar

The Python Profilers

dis - Disassembler for Python bytecode

The gzip module provides a simple command line interface to compress or decompress files.

http.server - HTTP servers

The json.tool module provides a simple command line interface to validate and pretty-print JSON objects

Tools for pickle developers

pydoc - Documentation generator and online help system

py_compile - Compile Python source files

site - Site-specific configuration hook

The tarfile module provides a simple command-line interface to interact with tar archives

timeit β€” Measure execution time of small code snippets

tokenize β€” Tokenizer for Python source

trace - Trace or track Python statement execution

The unittest module can be used from the command line to run tests from modules, classes or even individual test methods

Creation of virtual environments is done by executing the command venv

webbrowser - Convenient web-browser controller

zipapp - Manage executable Python zip archives

The zipfile module provides a simple command-line interface to interact with ZIP archives

НСдокумСнтированныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Но сущСствуСт Π΅Ρ‰Ρ‘ ряд встроСнных Π² Python ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² качСствС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, хотя это Π½Π΅ описано Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

base64

НСдокумСнтированная (Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска модуля base64 для [рас-]кодирования Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Base64. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΌ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„Π°ΠΉΠ»ΠΎΠΌ, Π½ΠΎ встрСтив Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ `-` ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ со стандартным ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Π²Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

$ echo "Aladdin:open sesame" | python -m base64 -
QWxhZGRpbjpvcGVuIHNlc2FtZQo=
$ echo QWxhZGRpbjpvcGVuIHNlc2FtZQo= | python -m base64 -d -
Aladdin:open sesame

encodings.rot_13

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° кодирования Π² ROT13: простой ΡˆΠΈΡ„Ρ€ для символов английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ сдвигом ("rotate") Π½Π° 13 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π΅. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π½Π΅ ΠΈΠ· английского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ "ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ", Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ echo test-тСст | python3 -m encodings.rot_13
grfg-тСст
$ echo grfg-тСст | python3 -m encodings.rot_13
test-тСст

filecmp

ΠœΠΎΠ΄ΡƒΠ»ΡŒ сравнСния Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Π²ΡƒΡ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС.

НапримСр создадим тСстовыС Π΄Π°Π½Π½Ρ‹Π΅:

$ mkdir sub1
$ echo "" > sub1/file
$ echo "sub1-file1" > sub1/file1
$ echo "sub1-file2" > sub1/file2
$ mkdir sub2
$ echo "" > sub2/file
$ echo "sub2-file1" > sub2/file1
$ echo "sub2-file3" > sub2/file3

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сравнСния Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ:

$ python3 -m filecmp sub1 sub2
diff sub1 sub2
Only in sub1 : ['file2']
Only in sub2 : ['file3']
Identical files : ['file']
Differing files : ['file1']

Π£ΠΊΠ°Π·Π°Π² ΠΊΠ»ΡŽΡ‡ -r ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ рСкурсивно (всС ΠΏΠΎΠ΄-Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ).

ftplib

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ FTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Как ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки этого модуля Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ простой FTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚. НапримСр ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°:

$ python3 -m ftplib test.rebex.net -l. readme.txt -dpub/example -l.
drwx------ 2 anonymous users          0 Mar 31  2023 pub
-rw------- 1 anonymous users        379 Sep 19  2023 readme.txt
Welcome to test.rebex.net!

You are connected to an FTP or SFTP server used for testing purposes
by Rebex FTP/SSL or Rebex SFTP sample code. Only read access is allowed.

For information about Rebex FTP/SSL, Rebex SFTP and other Rebex libraries
for .NET, please visit our website at https://www.rebex.net/

For feedback and support, contact support@rebex.net

Thanks!
-r-------- 1 anonymous users      19156 Feb 16  2007 imap-console-client.png
-rw------- 1 anonymous users      36672 Mar 19  2007 KeyGenerator.png
-rw------- 1 anonymous users      24029 Mar 19  2007 KeyGeneratorSmall.png
-r-------- 1 anonymous users      16471 Feb 16  2007 mail-editor.png
-r-------- 1 anonymous users      35414 Feb 16  2007 mail-send-winforms.png
-r-------- 1 anonymous users      49011 Feb 16  2007 mime-explorer.png
-rw------- 1 anonymous users      58024 Mar 19  2007 pocketftp.png
-rw------- 1 anonymous users      20197 Mar 19  2007 pocketftpSmall.png
-r-------- 1 anonymous users      20472 Feb 16  2007 pop3-browser.png
-r-------- 1 anonymous users      11205 Feb 16  2007 pop3-console-client.png
-rw------- 1 anonymous users        379 Sep 19  2023 readme.txt
-rw------- 1 anonymous users      11546 Mar 19  2007 ResumableTransfer.png
-rw------- 1 anonymous users       2635 Mar 19  2007 winceclient.png
-rw------- 1 anonymous users       6146 Mar 19  2007 winceclientSmall.png
-rw------- 1 anonymous users      80000 Mar 19  2007 WinFormClient.png
-rw------- 1 anonymous users      17911 Mar 19  2007 WinFormClientSmall.png

Π”Π°Π½Π½Ρ‹Π΅ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Π² случаС нСобходимости) бСрутся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `~/.netrc`. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» .netrc Ρ‡Π΅Ρ€Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -r.

mimetypes

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с MIME. Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏ содСрТимого ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° (ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ URL), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ python3 -m mimetypes not_exist.jpg
type: image/jpeg encoding: None

Π’Π°ΠΊ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚: ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ содСрТимого ΠΈΡΠΊΠ°Ρ‚ΡŒ подходящСС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°. Для этого Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -e, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ python3 -m mimetypes -e image/jpeg
.jpg

platform

ΠœΠΎΠ΄ΡƒΠ»ΡŒ получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (опСрационная систСма ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ исполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π°:

$ python3 -m platform
OpenBSD-7.5-amd64-64bit-ELF

sysconfig

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» собран Python (ΠΎΠΏΡ†ΠΈΠΈ ΠΈΠ· Makefile ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° pyconfig.h).

inspect

ΠœΠΎΠ΄ΡƒΠ»ΡŒ само-рСфлСксии python-ΠΊΠΎΠ΄Π°. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ имя python-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ "module:qualname", Π° Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ исходный ΠΊΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр:

$ python3 -m inspect inspect:ismodule
def ismodule(object):
    """Return true if the object is a module.

    Module objects provide these attributes:
        __cached__      pathname to byte compiled file
        __doc__         documentation string
        __file__        filename (missing for built-in modules)"""
    return isinstance(object, types.ModuleType)

Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -d, Ρ‚ΠΎ Π² стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Ρ‹Π²ΠΎΠ΄Π° пСчатаСтся ΠΌΠ΅Ρ‚Π°-информация ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. НапримСр:

$ python3 -m inspect -d inspect:ismodule
Target: inspect:ismodule
Origin: /usr/lib/python3.11/inspect.py
Cached: /usr/lib/python3.11/__pycache__/inspect.cpython-311.pyc
Line: 282

pyclbr

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π² качСствС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ python-ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ ΠΊΠ°ΠΊ просто ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΊ py-Ρ„Π°ΠΉΠ»Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ python3 -m pyclbr /usr/lib/python3.11/pyclbr.py
class _Object [] 53
  def __init__ 55
class Function [<__main__.Class object at 0x7efce054fdd0>] 68
  def __init__ 70
class Class [<__main__.Class object at 0x7efce054fdd0>] 78
  def __init__ 80
def _nest_function 89
def _nest_class 94
def readmodule 100
def readmodule_ex 112
def _readmodule 122
class _ModuleBrowser [<__main__.Class object at 0x7efce0397b10>] 186
  def __init__ 187
  def visit_ClassDef 195
  def visit_FunctionDef 220
  def visit_AsyncFunctionDef 230
  def visit_Import 233
  def visit_ImportFrom 248
def _create_tree 269
def _main 275