Cast将arg传递给string

时间:2011-01-04 20:29:57

标签: python casting arguments string-formatting

Python的新手,也许我没有说明问题,但是如何在python中将传递的arg转换为字符串?

以下是我正在尝试的内容:

#!/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 个答案:

答案 0 :(得分:9)

sys.argv的值已经是字符串。我认为问题是你传递的是sys.argv [0],这是脚本名称。试试这个:

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

答案 1 :(得分:1)

你在sys.argv中的args应该已经是字符串了。是什么让你认为你需要把它投射到一个字符串?

你认为你不应该发布错误吗?

但无论如何,无论如何,你做错了。 argv的第一个参数是脚本的名称。你可能想要

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

此外,您应该在循环中放置一个print语句,以确切了解传递给setId()的内容。

答案 2 :(得分:0)

看起来好像你想要一个整数。传入的每个arg 已经一个字符串,因此没有理由按照您的方式进行投射。请改为int(arg)