Python 当我知道索引存在时,索引超出范围

Python 当我知道索引存在时,索引超出范围,python,string,list,indexoutofrangeexception,Python,String,List,Indexoutofrangeexception,尝试为自己制作一个脚本,用于解析多行文本文件。就我的一生而言,我不明白为什么它总是给我索引自动转换,但如果我打印列表的内容,它会正确显示,当我删除或注释打印内容,或者尝试在列表中添加项目后进行任何进一步处理时,我会得到相同的错误 源文本文件有一组行,每行数据用逗号分隔,如下所示:abc,123456,abcd,efgh我试图删除字符串中除编号部分以外的所有内容,然后将“子字符串”添加到列表中,然后将其写入输出文件。我相信我写这篇文章的方式可能不是很有效率,所以请根据您的意见进行更正 import

尝试为自己制作一个脚本,用于解析多行文本文件。就我的一生而言,我不明白为什么它总是给我
索引自动转换
,但如果我打印列表的内容,它会正确显示,当我删除或注释打印内容,或者尝试在列表中添加项目后进行任何进一步处理时,我会得到相同的错误

源文本文件有一组行,每行数据用逗号分隔,如下所示:
abc,123456,abcd,efgh
我试图删除字符串中除编号部分以外的所有内容,然后将“子字符串”添加到列表中,然后将其写入输出文件。我相信我写这篇文章的方式可能不是很有效率,所以请根据您的意见进行更正

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        line = line.split(',')
        list.append(line[1])

with open(output, w) as w:
    w.write(list)

列表中索引超出范围的点击。追加(第[1]行)
部分。

您的文件很可能在开头或结尾包含一个空行,不包含逗号或任何其他类型的文本

尝试检测空行并跳过它们

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            list.append(line[1])

with open(output, w) as w:
    w.write(list)

您的文件很可能在开头或结尾包含一个空行,不包含逗号或任何其他类型的文本

尝试检测空行并跳过它们

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            list.append(line[1])

with open(output, w) as w:
    w.write(list)

您的文件很可能在开头或结尾包含一个空行,不包含逗号或任何其他类型的文本

尝试检测空行并跳过它们

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            list.append(line[1])

with open(output, w) as w:
    w.write(list)

您的文件很可能在开头或结尾包含一个空行,不包含逗号或任何其他类型的文本

尝试检测空行并跳过它们

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            list.append(line[1])

with open(output, w) as w:
    w.write(list)

您可以使用上面的代码找到有问题的行,它将为您打印有问题的行

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            try:
                list.append(line[1])
            except Exception, ex:
                print "problem with line", line

with open(output, w) as w:
    w.write(list)

您可以使用上面的代码找到有问题的行,它将为您打印有问题的行

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            try:
                list.append(line[1])
            except Exception, ex:
                print "problem with line", line

with open(output, w) as w:
    w.write(list)

您可以使用上面的代码找到有问题的行,它将为您打印有问题的行

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            try:
                list.append(line[1])
            except Exception, ex:
                print "problem with line", line

with open(output, w) as w:
    w.write(list)

您可以使用上面的代码找到有问题的行,它将为您打印有问题的行

import sys

fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
    content = f.readlines()
    for line in content:
        if line:
            line = line.split(',')
            try:
                list.append(line[1])
            except Exception, ex:
                print "problem with line", line

with open(output, w) as w:
    w.write(list)

我猜,有一行只有一个参数,这意味着[1]超出了范围。是否有尾随的换行符,或者换句话说:最后一行是空的?您的代码假设每一行中至少有一个逗号。您的索引超出了范围-Python不存在。在
拆分之后,使用
长度(行)
测试元素的数量。我猜,有一行只有一个参数,意味着[1]超出范围。是否有尾随的换行符,或者换句话说:最后一行为空?您的代码假设每行中至少有一个逗号。您的索引超出范围-Python不存在。在
拆分之后,使用
长度(行)
测试元素的数量。我猜,有一行只有一个参数,意味着[1]超出范围。是否有尾随的换行符,或者换句话说:最后一行为空?您的代码假设每行中至少有一个逗号。您的索引超出范围-Python不存在。在
拆分之后,使用
长度(行)
测试元素的数量。我猜,有一行只有一个参数,意味着[1]超出范围。是否有尾随的换行符,或者换句话说:最后一行为空?您的代码假设每行中至少有一个逗号。您的索引超出范围-Python不存在。在
拆分后,使用
长度(行)
测试元素的数量。