python - 如何在 python 中将列表中的 's' 字符串转换为 0?

标签 python

这个问题是another question的后续问题.您需要阅读以了解此处的问题。

想做这个,

输入1(文本文件1)

ABCD,  QI30  
FGDE,  Q140  
KLOM,  Q232   
..      ..  
..      ..   
..      ..  

Input2(文本文件2)

DATA: ARRAY: KLOM: n: 00000000011111111001111111ssss111111111111  
DATA: ARRAY: ABCD: n: 000111111111111111101111111111111sss111111  
DATA: ARRAY: FGDE: n: 01010101011111111sssssss111111111111111111  
 ..      ..  
 ..      ..   
 ..      ..  

输出

Item=Q232; Var:KLOM    
read_Var:read_q232: Get_Data: n: 00000000011111111001111111ssss111111111111  

Item=Q130; Var:ABCD  
read_Var:read_q150: Get_Data: n: 000111111111111111101111111111111sss111111  

Item=Q140; Var:FGDE  
read_Var:read_q170: Get_Data: n: 01010101011111111sssssss111111111111111111   
..      ..  
..      ..   
..      ..  

Item=Q232; Data:KLOM    
read_Data:burn_q232: Get_Data: n: 000000000111111110011111110000111111111111  

Item=Q130; Data:ABCD  
read_Data:burn_q150: Get_Data: n: 000111111111111111101111111111111000111111  

Item=Q140; Data:FGDE  
read_Data:burn_q170: Get_Data: n: 010101010111111110000000111111111111111111  
..      ..  
..      ..   
..      ..  

column3 input2 文本文件中的 'ssss' 字符串被替换为 '0000' 并作为输出写入输出文件的第二段。

这是我修改的部分代码:

with open('output.txt', 'w') as fobj:
for key, values in arrays:
    item = ids[key]
    new_values = string.replace(values[3:],'s','0')
    fobj.write('Item={}; Var:{}\n'.format(item, key))
    fobj.write('read_Var:read_{}: Get_Data: {}\n\n'.format(item.lower(),
                                                        ':'.join(new_values)))  

但是我得到了这个错误:

AttributeError: 'list' object has no attribute 'replace'  

最佳答案

您需要获取列表 values 中的最后一个条目并对其进行替换:

values[-1] = values[-1].replace('s', '0')

整个循环:

with open('output.txt', 'w') as fobj:
    for key, values in arrays:
        values[-1] = values[-1].replace('s', '0')
        item = ids[key]
        fobj.write('Item={}; Var:{}\n'.format(item, key))
        fobj.write('read_Var:read_{}: Get_Data: {}\n\n'.format(item.lower(),
                                                            ':'.join(values)))

输出:

Item=Q232; Var:KLOM
read_Var:read_q232: Get_Data: n:000000000111111110011111110000111111111111

Item=QI30; Var:ABCD
read_Var:read_qi30: Get_Data: n:000111111111111111101111111111111000111111

Item=Q140; Var:FGDE
read_Var:read_q140: Get_Data: n:010101010111111110000000111111111111111111

关于python - 如何在 python 中将列表中的 's' 字符串转换为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34506768/

相关文章:

python - django admin禁用特定用户的密码更改

python - DLIB: ImportError:/usr/local/cuda/lib64/libcudnn.so.7: 文件太短

python - argparse 接受 int 和字符串?

python - OpenCV :Text Processing and Noise Removal

python - Django获取过滤器集中最新3个结果

python - 在python中的某个模式之前添加字符串中的分隔符

python - 在同一个 CSV 文件中保存不同大小的多个列/变量

python - 使用 matplotlib ArtistAnimation 将文本添加到动画图像

python - 找不到马克

python - PyArg_ParseTupleAndKeywords() 中无值 PyObject 为 NULL