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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Adm10



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

Python


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

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

Всего записей: 35 | Зарегистр. 13-10-2006 | Отправлено: 15:48 16-06-2007 | Исправлено: shrmn, 22:22 07-03-2021
DJMC



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, есть код  
 
Mavrikii

Цитата:
Код:
from openpyxl import load_workbook
from os.path import exists
 
FILES_IN_FOLDER = './folder/'
 
 
def main(filename='data2.xlsx', savename='data2_.xlsx'):
    wb = load_workbook(filename, data_only=True)
    sheet = wb.active
    for cell in sheet['G']:
        if exists(FILES_IN_FOLDER + cell.value):
            cell.hyperlink = FILES_IN_FOLDER + cell.value
    wb.close()
    wb.save(savename)
 
 
if __name__ == '__main__':
    main()
 
 
FILES_IN_FOLDER - путь (лучше относительный) к папке с файлами.
filename - какого .xlsx файл прочитать
G - читает данные из G колонки
savename - под каким именем сохранить измененный .xlsx файл

 
подскажите пожалуйста как правильно это все написать, разместить чтобы заработал excel файл, цель данного кода: - есть папка в сети где лежат файлы в pdf формате и есть excel таблица где эти файлы также называются, цель сделать автоматически гиперссылки, то есть если такое название есть в excel таблице, нашел такой файл в папки и создал гиперссылку на него.

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 10:00 12-09-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DJMC
да что же тут непонятного? поставить python, установить в него модуль openpyxl  
https://pythonru.com/baza-znanij/skachat-i-ustanovit-python-na-windows-10
https://python-scripts.com/how-to-install-modules-python
 
поменять те данные, что указал..
FILES_IN_FOLDER - путь к папке с файлами. если папка всегда в одном месте, а excel файл перемещается, то абсолютный путь. если же относительный путь между .xlsx и папкой с файлами постоянен, то можно относительный указать.
G заменить на столбец, в котором идут файлы.
 
после чего запустить файл
python file.py
 
можно поменять  
main('откуда_считать.xlsx', 'куда_записать_измененный_файл.xlsx')
 

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:56 12-09-2022
DJMC



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

Цитата:
да что же тут непонятного? поставить python, установить в него модуль openpyxl  

проблема в том что у меня стоит запрет на установку любого ПО, есть только  Anaconda сделал запрос на компе, жду когда пройдет установка... буду пытаться познать этот мир программирования.  

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 13:51 12-09-2022
Mavrikii

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

Цитата:
есть только  Anaconda

ну так в нем и есть и питон и установщик пакетов..
более того, "установка" необязательна, чтобы что то в систему прописывалось.  
но в анаконде уже все есть, что нужно.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 17:41 12-09-2022 | Исправлено: Mavrikii, 18:13 12-09-2022
DJMC



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

Цитата:
ну так в нем и есть и питон и установщик пакетов..

Установил и теперь вопрос, какую программу использовать для Вашего кода?
 
https://ibb.co/k1fpQmY

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 08:51 13-09-2022
Mavrikii

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

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:06 13-09-2022
DJMC



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Спасибо, но что то не получается, вставляю Ваш код, и кучу ошибок, ушел читать мануал.
 

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 11:00 13-09-2022
CrownRU



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравия желаю!
Подскажите как выполнить через ssh функцию на удаленном сервере? Возможно ли это?
Вот пример:
 

Код:
#!/usr/bin/python
import glob, re
 
def exludeFolders(search_path, exclude_list):
    # finds all the folders, subfolders, and files in the directory
    all_files = glob.glob(search_path, recursive=True)
    # multiple conditions are joined with | in re. eg a|b matches a and b.
    multiple_paths = "|".join(exclude_list)
    # filter the results using re.
    filtered_list = list(filter(lambda x: not re.search(multiple_paths, x), all_files))
    return filtered_list
 
# Configure here
#search_path = "/app/*.cfg*"
# of course, you can provide full paths
#exclude_folders = ["OFFLINE", "backup"]
# calling excludeFolders() function
#ALL_FILES = exludeFolders(search_path, exclude_folders)

#print(ALL_FILES)
 
 
функция ищет файлы, фильтруя некоторые директории. Цель запускать скрипт с данной или другими функциями на удаленных машинах.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 12:05 13-09-2022
Mavrikii

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

Цитата:
вставляю Ваш код

куда? создаете файл.py, вставляете в него код, открываете консольное окно выше..
python файл.py
 
но сначала через pip установить тот модуль для работы с xlsx файлом, его может не быть.
 
Добавлено:
CrownRU

Цитата:
Подскажите как выполнить через ssh функцию на удаленном сервере? Возможно ли это?

подключаетесь через ssh, и далее, как написал выше. создаете файл с расширением .py, в него содержимое. и либо python file.py, либо первой сторокой можно прописать в него интерпретатор (если речь о Linux системах), сменить атрибут на исполняемый и запустить как ./file.py

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 12:06 13-09-2022 | Исправлено: Mavrikii, 12:06 13-09-2022
CrownRU



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

Цитата:
подключаетесь через ssh, и далее, как написал выше. создаете файл с расширением .py, в него содержимое. и либо python file.py, либо первой сторокой можно прописать в него интерпретатор (если речь о Linux системах), сменить атрибут на исполняемый и запустить как ./file.py

 
Спасибо, как запускать файл удаленно через paramico я знаю.
Вопрос стоит как запустить функцию (def) на удаленной машине.
 
На центральной машине развернул окружение с различными библиотеками, которых нет на других хостах.
Данные с других машин тянутся в центр и обрабатываются.

Всего записей: 212 | Зарегистр. 14-01-2003 | Отправлено: 12:17 13-09-2022
Mavrikii

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

Цитата:
Вопрос стоит как запустить функцию (def) на удаленной машине.

не функцию, сам файл..
 

Цитата:
На центральной машине развернул окружение с различными библиотеками, которых нет на других хостах.

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

Цитата:
ssh user1@server1 command1
ssh user1@server1 'command2'
ssh user1@server1 'command1 | command2'
ssh user1@server1 "command1; command2; command3"

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 12:21 13-09-2022 | Исправлено: Mavrikii, 12:22 13-09-2022
DJMC



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

Цитата:
но сначала через pip установить тот модуль для работы с xlsx файлом, его может не быть.

можете сказать как это сделать?
 

Цитата:
куда? создаете файл.py, вставляете в него код, открываете консольное окно выше..

что Вы имеете ввиду создать файл. ру? в текстовом блокноте создать текстовый документ с Вашим кодом?

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 15:44 13-09-2022
Mavrikii

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

Цитата:
можете сказать как это сделать?

я же дал ссылку ((
pip install openpyxl
 

Цитата:
что Вы имеете ввиду создать файл. ру? в текстовом блокноте создать текстовый документ с Вашим кодом?

да, а как еще вы пытаетесь?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 21:08 13-09-2022
DJMC



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

Цитата:
я же дал ссылку ((
pip install openpyxl

 
сделал, получилось вот так:

Цитата:
(base) C:\Users\ru>pip install openpyxl
Requirement already satisfied: openpyxl in c:\anaconda3\lib\site-packages (2.6.2)
Requirement already satisfied: et-xmlfile in c:\anaconda3\lib\site-packages (from openpyxl) (1.0.1)
Requirement already satisfied: jdcal in c:\anaconda3\lib\site-packages (from openpyxl) (1.4.1)

 
 

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 08:45 14-09-2022
Mavrikii

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

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 08:51 14-09-2022
DJMC



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, скажите пожалуйста кто то может сделать простой скрипт который бы оставлял дубликаты строчек, после их разложения.
 
То есть есть вот такие строчки:
1-(1,X);2-(1,X);3-(2);4-(1,X);5-(X,1);6-(2);7-(2);8-(X,2);9-(1,2);10-(1,X);11-(1);12-(1);13-(1,2);14-(1);15-(1)
1-(X,2);2-(X,2);3-(2);4-(1);5-(1,X);6-(1,2);7-(X,2);8-(X,2);9-(1,2);10-(X,2);11-(1,X);12-(1,2);13-(2);14-(1);15-(1)
 
если их разложить на дубликаты, то получается на выходе  
XX21122X1X11211
XX21122X2X11211
XX2112221X11211
XX2112222X11211
XX21X22X1X11211
XX21X22X2X11211
XX21X2221X11211
XX21X2222X11211
 
Сейчас основная проблема, что когда строк мало, они делаются за секунду, но когда их 1000 процесс зависает, возможно Python справится.

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 11:18 21-09-2022
Mavrikii

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

Цитата:
если их разложить на дубликаты, то получается на выходе

вы хотите, чтобы принцип "разложения" за вас додумывали?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 20:50 21-09-2022
DJMC



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

Цитата:
вы хотите, чтобы принцип "разложения" за вас додумывали?

Нет, я все могу описать, и поделиться программой которая это уже делает, возможно я хочу сильно многого, и с этой работой ни кто не справится, так как по сути получается вот такая комбинаторика в данной задаче:
одна строчка имеет 32 768 вариантов, если их две тысячи  строк то получается на выходе 65 536 000 вариантов, и сначала их нужно получить, а потом найти дубликаты и оставить в них. наверное такой объем это очень много?  
 

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 10:09 22-09-2022
Mavrikii

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

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 10:14 22-09-2022
DJMC



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

Цитата:
вы заставляете других делать что то за вас..

Есть строчка в виде  
1-(1,X);2-(1,X);3-(2);4-(1,X);5-(X,1);6-(2);7-(2);8-(X,2);9-(1,2);10-(1,X);11-(1);12-(1);13-(1,2);14-(1);15-(1)
 
ее преобразование через программу тотофон https://disk.yandex.ru/d/2LaOXe6UZgAfiQ  инструкция разное-утилиты-импорт развернутый дает
256 вариантов.. где вместо X становится 0, алгоритм программы.
 
Другими словами из варианта  1-(1,X);2-(1,);3-(2);4-(1);5-(1);6-(2);7-(2);8-(2);9-(1);10-(1);11-(1);12-(1);13-(1);14-(1);15-(1)
возможно получения двух вариантов, где в 1 сначала будет 1, а потом Х ,исходя из этого при 15 двойных значений будет 32 768 вариантов  
 
На примере выше берем вариант
1-(1,X);2-(1,X);3-(2);4-(1,X);5-(X,1);6-(2);7-(2);8-(X,2);9-(1,2);10-(1,X);11-(1);12-(1);13-(1,2);14-(1);15-(1)
и получаем из него 256 вариантов ..
 
 
1-(X,2);2-(X,2);3-(2);4-(1);5-(1,X);6-(1,2);7-(X,2);8-(X,2);9-(1,2);10-(X,2);11-(1,X);12-(1,2);13-(2);14-(1);15-(1), а из данного варианта получается  1024 варианта ..
 
теперь ищем дубликаты и получим 8 вариантов
002112201011211
002112202011211
002112221011211
002112222011211
002102201011211
002102202011211
002102221011211
002102222011211
 
Так понятнее смог объяснить?
 
 

Всего записей: 12237 | Зарегистр. 26-09-2005 | Отправлено: 10:23 22-09-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru