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

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

07.11.2014, 12:07. Показов 2100. Ответов 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
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru