Введенный аргумент в строку - PullRequest
0 голосов
/ 04 января 2011

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

Вот что я пытаюсь:

#!/usr/bin/python
# Python Wrapper to Call XMLRPC service

import xmlrpclib
import sys  

# Set the Server
servAddr = "http://127.0.0.1/xmlrpc.server.php"

# Start the Client
client = xmlrpclib.ServerProxy(servAddr)

for arg in sys.argv:
    id = str(arg)
    print client.service.setId(id) # Throws long error
    # print client.service.setId('123') # Hard coded works
    #print arg # prints the id passed

Ответы [ 3 ]

9 голосов
/ 04 января 2011

Значения от sys.argv уже являются строками.Я думаю, проблема в том, что вы передаете sys.argv [0], который является именем скрипта.Попробуйте это:

for arg in sys.argv[1:]:
    print client.service.setId(arg)
1 голос
/ 04 января 2011

Ваши аргументы в sys.argv уже должны быть строками. Что заставляет вас думать, что вам нужно наложить это на строку?

Не думаете ли вы, что вы должны опубликовать ошибку?

Но в любом случае, вы все равно делаете это неправильно. Первым аргументом argv является имя скрипта. Вы, вероятно, хотите

for arg in sys.argv[1:]:
    id = str(arg)
    print client.service.setId(id)

Кроме того, вы должны были просто поместить оператор print в цикл, чтобы увидеть, что именно было передано в setId ().

0 голосов
/ 04 января 2011

Похоже, вы хотите целое число.Каждый arg, который передается, является уже строкой, поэтому не было бы никакой причины, чтобы разыграть его, как вы делаете.Попробуйте int(arg) вместо.

...