如何解决值错误:对于基数为 10 的 int() 的无效文字:'import' - Python
当我运行此代码时:
var client = new RestClient("https://us1.api.mailchimp.com/3.0/lists/?LIST_ID?/members/?MD5_HASHED_EMAIL?");
client.Timeout = -1;
var request = new RestRequest(Method.PUT);
request.AddHeader("Authorization","Basic XXXX");
request.AddHeader("Content-Type","application/json");
request.AddParameter("application/json","{\r\n \"email_address\":\?EMAIL_ADDRESS_STRING?,\r\n \"status_if_new\":\"subscribed\",\r\n \"status\": \"subscribed\"\r\n}",ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
我收到此错误;
def main():
maze = []
maze_1d_arr = open(sys.argv[0],'r')
maze_read = maze_1d_arr.readline()
maze_split = maze_read.split(" ")
size_X = int(maze_split[0])
size_Y = int(maze_split[1])
maze_grid = int(maze_split[2:])
maze = np.array(maze_grid).reshape(size_X,size_Y)
start = np.where(maze_split == 2)
end = np.where(maze_split == 3)
path = astar(maze,start,end)
print(path)
有什么办法可以解决这个问题吗?它来自具有这一行的文本文件:
size_X = int(maze_split[0])
ValueError: invalid literal for int() with base 10: 'import'
作为文件的一点背景,第一个数字应该代表 x 轴,第二个数字应该代表 y 轴,第三个数字之后是网格。
非常感谢:)
编辑: 我已将代码更改为:
6 4 0 0 1 0 0 0 2 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 3 0
但我现在收到此错误,
def main():
maze = []
maze_1d_arr = open(sys.argv[1],'r')
maze_read = maze_1d_arr.readline()
maze_split = maze_read.split(" ")
size_X = [int (X) for X in maze_split[0]]
size_Y = [int (Y) for Y in maze_split[1]]
maze_grid = [int (x) for x in maze_split[2:]]
maze = np.array(maze_grid).reshape(size_X,end)
print(path)
我仍然使用与以前相同的文件来编写代码,有没有关于如何解决这个问题的想法?
解决方法
此错误是因为您没有使用 sys.argv
中的正确参数:第一个元素(索引 0)是程序的名称,而不是传递给程序的第一个参数。
因此,open(sys.argv[0],'r')
行会打开您程序的源代码(而不是您预期的数据文件)。
因此,您尝试解析的第一个单词是 Python 关键字 import
,它不是有效整数。
解决方案是用sys.argv[0]
替换sys.argv[1]
,这应该是正确的参数。
有关 sys.argv
的更多详细信息,请参阅 https://docs.python.org/3/library/sys.html#sys.argv。
一个可能有帮助的小提示:传统上,Unix 程序在打印帮助消息时使用它们的名称;为此,他们需要知道调用它们的名称,这是命令行上的第一个参数,即 sys.argv[0]
。只要记住这一点,就应该记住 sys.argv[1]
是程序的第一个参数。
祝你在 Python 之旅中好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。