首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >值错误:基数为10的int()的文本无效:'import‘- Python

值错误:基数为10的int()的文本无效:'import‘- Python
EN

Stack Overflow用户
提问于 2021-01-07 20:06:21
回答 1查看 87关注 0票数 0

当我运行这段代码时:

代码语言:javascript
运行
复制
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)

我得到了这个错误;

代码语言:javascript
运行
复制
    size_X = int(maze_split[0])
ValueError: invalid literal for int() with base 10: 'import'

有没有办法解决这个问题?它来自一个文本文件,其中包含以下一行:

代码语言:javascript
运行
复制
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

作为文件的一些背景知识,第一个数字应该表示x轴,第二个数字应该表示y轴,第三个数字向前是网格。

非常感谢:)

编辑:我已将代码更改为:

代码语言:javascript
运行
复制
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, size_Y)

    start = np.where(maze_split == 2)
    end = np.where(maze_split == 3)

    path = astar(maze, start, end)
    print(path)

但我现在得到了这个错误,

代码语言:javascript
运行
复制
size_Y = [int (Y) for Y in maze_split[1]]
IndexError: list index out of range

我仍然使用和以前一样的代码文件,有什么办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2021-01-07 20:18:21

此错误源于您没有使用来自sys.argv的正确参数:第一个元素(索引0)是程序的名称,而不是传递给程序的第一个参数。

因此,open(sys.argv[0], 'r')行将打开程序的源代码(而不是预期的数据文件)。因此,您尝试解析的第一个单词是Python关键字import,它不是一个有效的整数。

解决方案是用sys.argv[1]替换sys.argv[0],这应该是正确的参数。有关sys.argv的详细信息,请参阅https://docs.python.org/3/library/sys.html#sys.argv

提醒一下可能会有帮助:传统上,Unix程序在打印帮助消息时使用它们的名称;为此,它们需要知道调用它们的名称,这是命令行上的第一个参数,即sys.argv[0]。只要您记住这一点,就应该记住sys.argv[1]是程序的第一个参数。

祝您在使用Python的旅途中好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65612098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档