Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

Открыть новую тему     Написать ответ в эту тему

Adm10



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здесь обсуждается всё, что связано с использованием Python: программирование, библиотеки, ресурсы и другие вопросы

Python


Python - высокоуровневый язык программирования общего назначения с динамической типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ

С чего начать?
Простой, понятный и вместе с тем грамотный ресурс на русском языке: pythonworld.ru + самоучитель
Библия PEP8

Всего записей: 35 | Зарегистр. 13-10-2006 | Отправлено: 15:48 16-06-2007 | Исправлено: Lin1980, 22:13 27-01-2025
U235

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA можно еще буфер обмена напрямую использовать, чтобы даннные в окно cmd не вставлять. Как вариант.

Всего записей: 1003 | Зарегистр. 14-12-2005 | Отправлено: 05:47 26-03-2025 | Исправлено: U235, 05:48 26-03-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

      Про 'clipboard' я думал, но это надо как-то реализовать. Сценарий 'Python' может это реализовать? Если да, то как именно?

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 14:27 26-03-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проще через файл, виндовый клипбоард еще то тупое глюкало.

Всего записей: 5330 | Зарегистр. 18-09-2018 | Отправлено: 14:39 26-03-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Может быть и 'тупое'. Хотелось бы проверить. Сценарий 'Python' может взять данные из 'clipboard' или нет?

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 16:03 26-03-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сценарий python все может. Но сразу предупреждаю - это будет не однокликово, так как клипбоард - это матрешка со многими днами. Вы должны сперва четко определиться, в каком виде и формате вы хотите получить данные из клипборда.

Всего записей: 5330 | Зарегистр. 18-09-2018 | Отправлено: 16:23 26-03-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

      Я хочу получить данные из 'clipboard' в том виде и в том формате, в котором они там находятся.

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 16:27 26-03-2025
MBK2

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
Я хочу получить данные из 'clipboard' в том виде и в том формате, в котором они там находятся.

Судя по вашим формулировкам, не нужна вам такая машина...

Всего записей: 5330 | Зарегистр. 18-09-2018 | Отправлено: 19:21 26-03-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

      Конечно не нужна. Это я просто 'развлекаюсь'.

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 00:08 27-03-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

       Моя борьба с 'Терминалом' Windows успехом не увенчалась.
      https://learn.microsoft.com/ru-ru/troubleshoot/windows-client/shell-experience/command-line-string-limitation
      Приходится использовать вариант получения данных из файла.
      Помогите, пожалуйста, изменить этот код

Код:
from urllib import request
data_uri = "строка выше"
with request.urlopen(data_uri) as response:
    data = response.read()
    with open("image.png", "wb") as f:
    f.write(data)

   таким образом, чтобы работала такая команда:
      'x.py x.txt'
    где 'x.txt' - файл с данными.

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 00:38 08-04-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
таким образом, чтобы работала такая команда:

import sys
и в sys.argv[1] будет то, что справа от файла скрипта.  
первоначально нужно проверить размер массива, вдруг ничего нет.
 
есть и более серьезный способ для разных параметров и подсказок к ним

Код:
from argparse import ArgumentParser
 
parser = ArgumentParser()
parser.add_argument("-f", "--file", dest="filename",
                    help="write report to FILE", metavar="FILE")
parser.add_argument("-q", "--quiet",
                    action="store_false", dest="verbose", default=True,
                    help="don't print status messages to stdout")
 
args = parser.parse_args()

 
ну а как читать из файла - уже знаете.

Всего записей: 16249 | Зарегистр. 20-09-2014 | Отправлено: 00:44 08-04-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
                   
Цитата:
как читать из файла - уже знаете

     Пока - не очень. Моей 'изобретательности' хватило только на это:
 

Код:
import os
from urllib import request
 
sys.argv[1] = x.txt
with request.urlopen(sys.argv[1]) as response:
    data = response.read()
    with open("image.png", "wb") as f:
    f.write(data)

  Error:
f.write(data)
    ^
IndentationError: expected an indented block

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 10:19 08-04-2025
IJCuper



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LZAA
думаю надо поправить так

Код:
 
sys.argv[1] = x.txt
with request.urlopen(sys.argv[1]) as response:
    data = response.read()
    with open("image.png", "wb") as f:
        f.write(data)
 

Всего записей: 747 | Зарегистр. 07-07-2004 | Отправлено: 11:17 08-04-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

                        Сделал так:

Код:
import os
from urllib import request
 
sys.argv[1] = 'x.txt'
with request.urlopen(sys.argv[1]) as response:
    data = response.read()
    with open("image.png", "wb") as f:
        f.write(data)

  Теперь такая ошибка:
    sys.argv[1] = 'x.txt'
NameError: name 'sys' is not defined
  Подозреваю, что я не так понимаю

Цитата:
в sys.argv[1] будет то, что справа от файла скрипта

 

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 15:26 08-04-2025
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
 
добавь в начало
import sys

Всего записей: 25446 | Зарегистр. 06-12-2002 | Отправлено: 16:50 08-04-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
      Дико извиняюсь - вместо 'sys' написал 'os'!
 
      Команда:
      x.py x.txt

Код:
import sys
from urllib import request
 
sys.argv[1]
with request.urlopen(sys.argv[1]) as response:
    data = response.read()
    with open("image.png", "wb") as f:
        f.write(data)

      Теперь 'request' 'ругается':
 
File "D:\Program Files\Python 3.8\lib\urllib\request.py", line 383, in _parse
    raise ValueError("unknown url type: %r" % self.full_url)
ValueError: unknown url type: 'x.txt'

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 17:27 08-04-2025 | Исправлено: LZAA, 17:33 08-04-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
request.urlopen

это для веб запросов, x.txt не является URL.
если вы хотите URL в txt файле, то его нужно прочитать
 

Код:
with open(sys.argv[1], "r") as file:
    first_line = file.readline()
    with request.urlopen(first_line) as response:
        data = response.read()
        with open("image.png", "wb") as f:
            f.write(data)

 
но зачем так? я думал куча данных, поэтому в файле. URL можно и просто аргументом вызова скрипта передавать. чего вы пытаетесь добиться?

Всего записей: 16249 | Зарегистр. 20-09-2014 | Отправлено: 18:08 08-04-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    'Начало начал':
 

Цитата:
Есть данные в таком формате:
 
 
Код:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAzklEQVRYhe2X0Q2DMAxEvVNnYQVmySy3QlbwClnBK1x/GhSlUhs3pqhqLD0BH3BPdoJA5Ll4Im+LZ9aIBEnSzJhSCsPMaGZ+gSJyPITkcXx1Xq9bVJU55887cNt3N+ECpLpYAktgCSyBJRAqMMtvCpRSwvhfAQAEMC/wuNEdXkRYRAjAL9BKeAUAHJ90UwI1uGckvDI1Aq9A2/YaHrIIR0fQzz1sF4wKtCu/34YArnsP1HVxiUAN37ZtXEBVQ2jDXR3IOU/Th492QOTLv+d34gYkKFeoOJAAAAAASUVORK5CYII=
 

 
  Подобные данные я записываю в файл 'x.txt'. Это вынужденная мера, потому что я не могу вставить в 'Терминал' большое количество знаков. Пожелание заключается в том, чтобы сценарий 'Python' использовал такие данные из файла 'x.txt'. Никакого 'URL' в них нет.

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 20:06 08-04-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
я написал код выше, вам нужно прочитать данные из файла, а не указывать его urlopen.
даже лучше так

Код:
 
with open(sys.argv[1], "r") as file:
    first_line = file.readline().rstrip("\r\n")
    with request.urlopen(first_line) as response:
        data = response.read()
        with open("image.png", "wb") as f:
            f.write(data)

Всего записей: 16249 | Зарегистр. 20-09-2014 | Отправлено: 21:15 08-04-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

           Это работает. Большое спасибо за помощь!
      Интересный момент.
      Я проверяю работу сценария с файлом 'x.txt' размером 16 MB. Но перед этим я эти данные записывал в  

Код:
from urllib import request
data_uri = "строка выше"
with request.urlopen(data_uri) as response:
    data = response.read()
    with open("image.png", "wb") as f:
    f.write(data)

   В результате файл 'image.png' создавался секунд через 5 (приблизительно). Я ещё тогда думал: ,,Почему так медленно?". Про вариант с данными в файле я думал, что 'возни' будет ещё больше. Но оказалось, что при выполнении сценария с данными в файле 'x.txt' файл 'image.png' создаётся практически 'мгновенно'. То есть - это самое лучшее решение задачи.
   

Всего записей: 2511 | Зарегистр. 09-01-2010 | Отправлено: 23:51 08-04-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA

Цитата:
Я ещё тогда думал: ,,Почему так медленно?"

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

Всего записей: 16249 | Зарегистр. 20-09-2014 | Отправлено: 23:54 08-04-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Python


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru