Python
Как отправить файл с одного компьютера на другой через Python
Если оба компьютера находятся в одной локальной сети, самый простой способ передать файл через Python — поднять временный HTTP-сервер в папке с файлом
На компьютере, где лежит файл
python -m http.server 8000
На втором компьютере откройте в браузере
http://IP_первого_компьютера:8000/
И скачайте файл обычным кликом
Это не «мессенджер на Python», но для передачи txt, csv, zip или небольшого архива в одной сети способ очень удобный
Как узнать IP первого компьютера
На macOS и Linux можно попробовать
ipconfig getifaddr en0
Или
ifconfig
На Windows
ipconfig
Ищите IPv4-адрес вроде
192.168.1.25
Если на первом компьютере файл data.txt, а IP 192.168.1.25, на втором компьютере адрес будет таким
http://192.168.1.25:8000/data.txt
Пример с папкой
Создайте папку send_file_test
send_file_test/
data.txt
В файле data.txt напишите
Привет, это файл, переданный через Python
Откройте терминал в этой папке и запустите
python -m http.server 8000
В консоли появится сообщение, что сервер запущен. Пока терминал открыт, второй компьютер может скачать файл
Чтобы остановить сервер, нажмите Ctrl + C
Как скачать файл на втором компьютере через Python
Можно скачать файл не браузером, а Python-скриптом
Установите requests
python -m pip install requests
Код на втором компьютере
import requests
url = "http://192.168.1.25:8000/data.txt"
response = requests.get(url, timeout=10)
response.raise_for_status()
with open("received_data.txt", "wb") as file:
file.write(response.content)
print("Файл сохранен")
Замените IP на адрес вашего первого компьютера
Почему режим "wb": мы записываем байты. Так код подойдет не только для txt, но и для картинок, архивов, PDF
Важное ограничение по безопасности
python -m http.server открывает доступ к файлам текущей папки для устройств в сети. Не запускайте его в папке с личными документами, паролями, ключами и рабочими секретами
Создайте отдельную папку и положите туда только тот файл, который хотите передать
После передачи остановите сервер через Ctrl + C
Если компьютеры не в одной сети
Если один компьютер дома, а другой в другой сети, простой http.server обычно не подойдет. Роутер, NAT и firewall не пропустят подключение напрямую
Тогда лучше использовать
- облачное хранилище
- SFTP/SSH, если есть сервер
- VPN между компьютерами
- временный backend/API, если это часть учебного проекта
- мессенджер или почту, если задача бытовая
Писать свой «интернет-передатчик файлов» с нуля — не лучшая первая задача. Там быстро появляются авторизация, безопасность, ограничения размера, повторная загрузка и шифрование
Простой сервер на Flask: когда нужен
Если нужно не просто скачать файл, а загрузить файл с одного компьютера на сервер, можно сделать маленький Flask-пример. Но для первого раза это уже сложнее, чем http.server
Идея такая
- один компьютер запускает веб-приложение
- второй открывает форму загрузки
- файл отправляется через браузер
- сервер сохраняет файл в папку
Для учебной передачи в локальной сети http.server почти всегда проще
Частые ошибки
Страница не открывается на втором компьютере
Проверьте
- оба компьютера в одной сети Wi-Fi или LAN
- IP указан правильно
- порт
8000не заблокирован firewall - сервер запущен в терминале
- вы не закрыли терминал после запуска
Открывается не та папка
Сервер показывает ту папку, из которой вы его запустили. Остановите сервер, перейдите в нужную папку и запустите снова
cd path/to/folder
python -m http.server 8000
Файл скачался, но русские буквы выглядят странно
Если вы скачали txt и открыли его в редакторе, проблема может быть в кодировке. Сохраняйте файл в UTF-8
В Python для текста используйте
with open("data.txt", "w", encoding="utf-8") as file:
file.write("Привет")
Мини-задача
Сделайте передачу файла в два шага
На первом компьютере
mkdir transfer-test
cd transfer-test
echo "hello from python server" > message.txt
python -m http.server 8000
На втором компьютере скачайте файл через браузер или через Python-скрипт с requests
После проверки остановите сервер на первом компьютере
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Как запустить программу на Python: файл .py, терминал, CMD и VS Code
- Как открыть файл в Python: open(), with, чтение текста и частые ошибки
- Как открыть файл с помощью Python: open, pathlib и чтение текста
- Как создать файл в Python: open, pathlib и запись текста