在Python中移除部分换行符但不是全部

2024-04-26 14:12:48 发布

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

我有这种格式的数据

Picture
'#Type'
'10', '10'
000000000000000
110000110110000
Picture2
'#Type2'
'10', '10'
000000000000000
110000111110000

我可以用

sourcefile.read().splitlines() 

但是第4行和第5行将是列表中的两项。名单将是

[picture],[#type],[10,10],[000000000000000],[110000110110000],...

但我的目标是连接[000000000000000][110000110110000],即第4行和第5行,并使它们成为一个项目。最终的结果是

[Picture],
['#Type'],
['10', '10'],
[000000000000000110000110110000]

我怎样才能做到这一点?更好的是,如何将它们作为嵌套列表中的一个组设置为4?非常感谢。你知道吗


Tags: 数据目标列表read格式typepicture名单
3条回答

你能试一下吗

with open('data.txt', 'r') as infile:
    data = infile.read()
split_data = data.split('\n')
req_list = range(3, len(split_data), 5)
flag = False
for ind, val in enumerate(split_data):
    if flag:
        print([split_data[ind-1] + val])
        flag = False
        continue
    if ind not in req_list:
        print([val])
    else:
        flag = True

输出:

['Picture']
["'#Type'"]
["'10', '10'"]
['000000000000000110000110110000']
['Picture2']
["'#Type2'"]
["'10', '10'"]
['000000000000000110000111110000']

一旦数组完成,您就可以对其进行重新迭代。你知道吗

arr = sourcefile.read().splitlines() 

获得数组后,可以提取长度超过9个字符的输入

arrOfLargeNumbers = filter(lambda x: len(x) > 9, arr)

然后从数组中移除旧的并添加新的

arr.remove(arrOfLargeNumbers[0])
arr.remove(arrOfLargeNumbers[1])
arr.append(f'{arrOfLargeNumbers[0]}{arrOfLargeNumbers[1]}'

如果你总是有4行每一张照片,那么你可以分割线,就像你现在做的-然后合并每3和4行,以获得结果

相关问题 更多 >