Python:从空列表弹出?

2024-10-03 00:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个简单的程序,它需要对一个文件中的数字进行排序,然后将输出写入另一个文件,但我做不到。在

from sys import argv
try:
    with open(argv[1],"r") as desti:
        with open("nums_ordenats.txt","w") as prl:
            for n in desti:
                argv.pop(0)
                argv.sort()
                argv.sort(key=len)
            prl.write(str(n)+("\n"))
except Exception as err:
    print(err, "Error")

有人能解释一下错误在哪里吗?谢谢!在


Tags: 文件fromimport程序排序aswithsys
2条回答

您的方法不起作用,因为索引超出范围,您可以执行以下代码来读取并排序文件中的数字。在

from sys import argv    
with open(argv[1],'r') as myfile:
        for line in myfile:
            print (sorted(map(int, line.split(','))))

如果文件包含逗号分隔的值。在

错误在argv.pop(0)行中,因为argv在运行时为空。这意味着destiargv[1])比argv长。 原因是argv的格式是['C:\\This\\is\\a\\path.py'],因此只包含'C:\\This\\is\\a\\path.py'argv[1], 但是('C:\\This\\is\\a\\path.py')包含每个单独的字符,因为它是一个字符串。如果需要每个单独的文件夹(然后是文件),可以使用: argv[1].split('\\'),它将返回: ['C:', 'This', 'is', 'a', 'path.py']

相关问题 更多 >