πŸ”— Как ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы

Для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

  1. ИспользованиС модуля subprocess:
  2. import subprocess
    
    result = subprocess.run(['python', 'script2.py'], capture_output=True, text=True)
    data = result.stdout
    
  3. ИспользованиС модуля os:
  4. import os
    
    os.system('python script2.py')
    
  5. ИспользованиС модуля socket:
  6. import socket
    
    server_address = ('localhost', 1234)
    
    # Π‘Π΅Ρ€Π²Π΅Ρ€Π½Ρ‹ΠΉ скрипт
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server_socket.bind(server_address)
    server_socket.listen(1)
    
    client_socket, client_address = server_socket.accept()
    data = client_socket.recv(1024)
    client_socket.close()
    
    # ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ скрипт
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect(('localhost', 1234))
    client_socket.send(b'Data to send')
    client_socket.close()
    
  7. ИспользованиС модуля pickle:
  8. import pickle
    
    # Π‘ΠΊΡ€ΠΈΠΏΡ‚ 1
    data = {'message': 'Hello'}
    with open('data.pickle', 'wb') as f:
        pickle.dump(data, f)
        
    # Π‘ΠΊΡ€ΠΈΠΏΡ‚ 2
    with open('data.pickle', 'rb') as f:
        data = pickle.load(f)
    

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Python

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ скриптами. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ рассмотрим нСсколько способов Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… Π² Python.

1. ИспользованиС модуля Python

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами - это использованиС модуля Python. ΠœΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ структуру для хранСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ классов. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ скрипт.


# script1.py
data = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"

# script2.py
import script1
print(script1.data)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ "data" Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ "script1.py" ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² "script2.py". Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ "data" Π² "script2.py".

2. ИспользованиС Ρ„Π°ΠΉΠ»ΠΎΠ²

Если Π΄Π°Π½Π½Ρ‹Π΅ довольно большиС ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ записи ΠΈ чтСния Ρ„Π°ΠΉΠ»ΠΎΠ² для этой Ρ†Π΅Π»ΠΈ.


# script1.py
data = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
with open("data.txt", "w") as file:
    file.write(data)

# script2.py
with open("data.txt", "r") as file:
    data = file.read()
print(data)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!"
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сохраняСм Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ» "data.txt" Π² "script1.py" с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ записи. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ считываСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π° Π² "script2.py" с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ чтСния.

3. ИспользованиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами - это использованиС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΈ запускС скрипта.


# script1.py
import sys
data = sys.argv[1]

# script2.py
import sys
data = sys.argv[1]
print(data)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΏΡ€ΠΈ запускС скриптов "script1.py" ΠΈ "script2.py" ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

python script1.py ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами.

4. ИспользованиС сокСтов

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… ΠΈΠ»ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… сСтях, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сокСты. Π‘ΠΎΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ соСдинСниС ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ.


# server.py
import socket

HOST = '127.0.0.1'  # Π₯ост-адрСс сСрвСра
PORT = 12345  # ΠŸΠΎΡ€Ρ‚ сСрвСра

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ сокСт
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen()

# ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
conn, addr = s.accept()

# ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
data = conn.recv(1024).decode()

conn.close()
print(data)  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
    

# client.py
import socket

HOST = '127.0.0.1'  # Π₯ост-адрСс сСрвСра
PORT = 12345  # ΠŸΠΎΡ€Ρ‚ сСрвСра

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ сокСт
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

# ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ сСрвСру
data = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, сСрвСр!"
s.sendall(data.encode())

s.close()
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали сСрвСрный скрипт "server.py", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ…. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали клиСнтский скрипт "client.py", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ устанавливаСт соСдинСниС с сСрвСром ΠΈ отправляСт Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ сокСтов.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли нСсколько способов ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ подходящий способ Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Python, Ρ„Π°ΠΉΠ»Ρ‹, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈΠ»ΠΈ сокСты, Π²Ρ‹ смоТСтС эффСктивно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ вашСго прилоТСния.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ автозапуск Python скриптов ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹

Как ΠΏΠΈΡΠ°Ρ‚ΡŒ Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹ Π½Π° Python - Π‘ΠΊΡ€ΠΈΠΏΡ‚ ΠžΡ‡ΠΈΡΡ‚ΠΊΠΈ Π›ΠΎΠ³-Ρ„Π°ΠΉΠ»ΠΎΠ²

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”§ Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python ΠΈ PyCharm: пошаговоС руководство πŸ”§

Как Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ тСкст Π½Π° массив python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ πŸ“šπŸ”

πŸ” Как ввСсти мноТСство Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ input? πŸ–₯️

πŸ”— Как ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ скриптами Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простыС способы

πŸΠ“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½Π° Π² МосквС? Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹ ΠΈ Ρ€Ρ‹Π½ΠΊΠΈ

πŸ”Ž Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ пустыС элСмСнты ΠΈΠ· массива Python?

πŸΠŸΠΎΡ‡Π΅ΠΌΡƒ Паскаль Π»ΡƒΡ‡ΡˆΠ΅ ΠŸΠΈΡ‚ΠΎΠ½Π°? πŸ–₯️ Π£Π·Π½Π°ΠΉΡ‚Π΅ стоит Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Паскаль ΠΏΠ΅Ρ€Π΅Π΄ ΠŸΠΈΡ‚ΠΎΠ½ΠΎΠΌ