将新值附加到文本文件

时间:2017-04-18 17:39:49

标签: python list replace position append

嘿,这是我的第一篇文章,我对python /编码非常陌生。 我有这个问题,我不太清楚如何解释它。 基本上我有这个txt文件,其中包含大量的行"字符/数字列表" 喜欢" 5,0,10和#34;和" $,20,,5"我有一个代码块,它基本上遍历每一行中的每个元素,并返回0表示空格,-1表示非数字,如果元素是数字,则只返回数字。现在,问题是我现在必须以某种方式编辑那些数字行并用返回值(0和-1)替换空格和非数字,然后在python中吐出来,坦率地说我太多了编码菜鸟要知道使用什么功能。我有这个心灵障碍,我确切地知道我需要做什么,但我不知道如何去做。我需要以某种方式将这些返回的值附加到具有原始数字的列表中,减去空格和非数字,并且在它们的位置上有0&s;和-1' s。再次抱歉,这是我的第一篇文章,可能格式非常糟糕,它的格式非常糟糕。

def parseVote(s):
    s = s.strip()
    if len(s) == 0:
        return 0
    elif s.isdigit() == True:
        return s
    else:
        return -1

print(parseVote())

1 个答案:

答案 0 :(得分:0)

我认为这符合您的要求。这可能是一个比使用条带函数更长的方法,但我认为我会简单。主要的是循环列表列表,以及每个列表中每个元素的嵌套循环。我注意到,如果数字为0(结果0),则元素为空(结果0)时得到相同的结果。可能是个问题。

with open( r'C:\Program Files\s.txt' ) as s_file:
    s = []
    for line in s_file:
        stripped_line = line.strip('\n')
        s.append( stripped_line.split(',') )

s_file.close( )
#s = [['5','0','10'],['$','20','','5']]

def parseVote(s):

    new_s = []        
    for s_list in s: 

        s_transform = []                
        for elem in s_list:

            if len(elem) == 0:
                s_transform.append( 0 )            
            elif elem.isdigit( ) == True:
                s_transform.append( elem )            
            else:
                s_transform.append( -1 )

        new_s.append( s_transform )

    return new_s

new_s = parseVote(s)
print(new_s)

输出

[['5', '0', '10'], [-1, '20', 0, '5']]