Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 16

Содержимое аргумента в массив или список

07.11.2014, 12:07. Показов 2117. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Возникла такая проблемка (погуглил, но ничего полезного не нашлось), у меня есть файл ptremote.py, которому я хочу отправить в аргументе список ников игроков, например ptremote.py nickname1,nickname2 . Насчёт правильной отправки я не уверен. Сама проблема в том, что я не могу понять, как содержимое аргумента записать либо в массив, либо в список, чтобы потом при записи в файл получился каждый nickname с новой строки. В самом коде получаю nicks = str(sys.argv[1]). Помогите вариантами, если что-то не понятно объяснил, извиняйте, могу описать подробнее.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.11.2014, 12:07
Ответы с готовыми решениями:

Передать ZipInputStream содержимое TextArea. Или как запаковать содержимое текстового поля
Есть простой текстовый редактор. Необходимо добавить функцию сохранения сразу в zip.(Не спрашивайте зачем, просто задание в контексте...

Найти ОДЗ аргумента, написать процедуру или функцию которая вычисляет одз аргумента х
помогите сделать пожалуйста

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

11
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
07.11.2014, 12:44
Цитата Сообщение от RWNET Посмотреть сообщение
Доброго времени суток. Возникла такая проблемка (погуглил, но ничего полезного не нашлось), у меня есть файл ptremote.py, которому я хочу отправить в аргументе список ников игроков, например ptremote.py nickname1,nickname2 . Насчёт правильной отправки я не уверен. Сама проблема в том, что я не могу понять, как содержимое аргумента записать либо в массив, либо в список, чтобы потом при записи в файл получился каждый nickname с новой строки. В самом коде получаю nicks = str(sys.argv[1]). Помогите вариантами, если что-то не понятно объяснил, извиняйте, могу описать подробнее.
как содержимое аргумента записать либо в массив, либо в список...список - sys.argv =) не за что
чтобы потом при записи в файл получился каждый nickname с новой строки - пишите каждый ник с новой строки '\n'
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 16
07.11.2014, 12:46  [ТС]
Можно пожалуйста небольшой пример кода, если не трудно, так как я пока в этом новичок. Есть ещё нюанс, то что кроме этого аргумента до него передаются и другие, их много, но попасть в список они не должны.
0
17 / 22 / 6
Регистрация: 16.10.2013
Сообщений: 316
07.11.2014, 14:03
строка + '\n' + строка =
строка
строка

теперь ясно?)
Есть ещё нюанс, то что кроме этого аргумента до него передаются и другие, их много, но попасть в список они не должны. - все поапдет в список
или бери парсер какой то...
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
07.11.2014, 14:20
Лучше взять список в кавычки, а там - дело техники.
0
Z3JheSBoYXQ=
 Аватар для fanatdebian
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
07.11.2014, 14:54
Судя по названию файла,работа тулзы предполагает использование стека tcp/ip. Рекомендацию дам, для частных случаев использовать дампы pickle. И передавать что нужно в дампе. Хоть кортежи, хоть словари хоть, сеты, хоть инстансы. Реализация обработки входящих аргументов сразу упрощается, тебе надо ввести фильтр на входящий аргумент который проверяет тип входного объекта, если дамп pickle то разворачиваем и используем данные из него, если нет, assert с некорректным запросом.
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 16
07.11.2014, 17:13  [ТС]
Нет, к сожалению стек не используется, всё гораздо "велосипедней", от РНР скрипта на сайте идёт ssh запрос напрямую с адресом скрипта и аргументами. Например: /home/script/ptremote.py addnick mcpc nickname1,nickname2 , где /home/script/ptremote.py / функция / тип игры / ники игроков.
Python
1
2
3
4
5
6
7
8
ops =    str(sys.argv[3])
def addNick():
    f = open('/home/srv/ops.txt', 'a')
    l = list([ops])
    for index in l:
        f.write(index + '\n')
    f.close()
    return True
Это то что есть на текущий момент. Проблем с переносом строк у меня в принципе нет. Главный вопрос как засунуть аргумент с nickname1,nickname2 в l = list([ops]). Если вручную задать l = list(['nickname1','nickname2']), то всё прекрасно работает. Если немного туплю, извиняйте.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
07.11.2014, 18:15
Лучший ответ Сообщение было отмечено RWNET как решение

Решение

Цитата Сообщение от RWNET Посмотреть сообщение
Главный вопрос как засунуть аргумент с nickname1,nickname2 в l = list([ops]).
Python
1
2
3
4
import sys
 
players = sys.argv[1].split(',')
print '\n'.join(players)
Bash
1
2
3
4
$ python script.py a,b,c
a
b
c
1
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 16
07.11.2014, 20:04  [ТС]
Большое спасибо за этот код, всё работает, но к сожалению он выводит каждую букву в новой строке, слова разбиваются на куски.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
07.11.2014, 20:08
Цитата Сообщение от RWNET Посмотреть сообщение
но к сожалению он выводит каждую букву в новой строке, слова разбиваются на куски.
Это на каких входных данных?

Если есть возможность переписать php часть, то лучше при вызове использовать нормальные опции (--players=a,b,c --game=smth) и стандартный парсер (argparse). Или вообще использовать другой механизм взаимодействия.
1
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 16
07.11.2014, 20:10  [ТС]
Прошу прощение, моя ошибочка, забыл убрать str(sys.argv[1]) , str. Убрав его всё встало на места, огромнейшее спасибо за помощь
0
Z3JheSBoYXQ=
 Аватар для fanatdebian
342 / 237 / 83
Регистрация: 08.07.2012
Сообщений: 577
07.11.2014, 20:12
Python
1
2
3
4
5
6
7
8
9
10
11
stroka = "addnick mcpc nickname1,nickname2"
 
parse = lambda  stroka: [x for x in stroka.split() if x]
function, command, users  = parse(stroka)
template = dict(function=function, command=command, users=[x for x in users.split(',') if x])
 
for key, value in template.items():
    print "{:<20}{:<40}".format(key,  value)
 
for x, user in enumerate(template['users'], 1):
        print "{:.<20} {:<40} ".format(x,  user)
Bash
1
2
3
4
5
function            addnick                                 
command             mcpc                                    
users               ['nickname1', 'nickname2']              
1................... nickname1                                
2................... nickname2
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.11.2014, 20:12
Помогаю со студенческими работами здесь

Список или массив?
Всем привет. Есть такой вопрос: что за путаница в питоне во структурами данных и зачем так? Дело в том что вот в этой теме спор начался...

Связный список или массив?
Допустим, имеем массив из n элементов, полностью заполненный и имеем связный список из такого же количества таких же элементов. Какая...

Методы принимают в качестве аргумента простой указатель, как тогда меняется содержимое строки?
Уже &quot;достали&quot; указатели, недавно разбирал односвязный список и там для того, чтобы изменить значение указателя в функцию передавали...

Массив или Список определённого типа (Класса)
Здраствйте. Есть Клас ScrolingField import pygame from rect import Rect from settings import * class Scroolinngfield: ...

Список или массив в ячейке таблицы MSSQL
Здравствуйте! Помогите пожалуйста! У меня есть 2 таблицы, таблица блюд и таблица продуктов. Необходимо в таблицу блюд добавить столбец,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru