我有这种格式的数据
$ sudo dpkg-reconfigure apparmor
我可以使用
读入文件Picture
'#Type'
'10', '10'
000000000000000
110000110110000
Picture2
'#Type2'
'10', '10'
000000000000000
110000111110000
,但是第4行和第5行将是列表中的两项。例如,列表将是
sourcefile.read().splitlines()
但是我的目标是将[picture],[#type],[10,10],[000000000000000],[110000110110000],...
和[000000000000000]
(即第4行和第5行)连接起来并使其成为一项。最终结果将是
[110000110110000]
我该如何实现?更好的是,如何使它们在嵌套列表中成为一组4?非常感谢。
答案 0 :(得分:2)
您可以尝试以下方法吗?
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']
答案 1 :(得分:1)
完成后,您只需在数组上重复即可。
initialArray.forEachIndexed { index, value ->
initialArray[index] = initialArray[index] + offset
// or:
initialArray[index] = value + offset
}
有了数组后,您可以提取长度超过9个字符的输入
arr = sourcefile.read().splitlines()
然后从阵列中删除旧的并添加新的
arrOfLargeNumbers = filter(lambda x: len(x) > 9, arr)
答案 2 :(得分:0)
如果每张图片始终有4行,那么可以像现在一样拆分行-然后合并第3行和第4行以得到结果
答案 3 :(得分:0)
with open("path_to_your_input_file", "r") as f:
lines = [line.rstrip() for line in f.readlines()]
new_lines = []
last_was_digit = 0
for i, line in enumerate(lines):
if line.isdigit() and last_was_digit == 0:
new_lines.append(["".join([line, lines[i+1]])])
last_was_digit = 1
elif last_was_digit == 1:
last_was_digit = 0
else:
new_lines.append([line])
因此,这段代码通过读取文件来完成这项工作。它不优雅,但可以。
输出:
> [['Picture'], ["'#Type'"], ["'10', '10'"], ['000000000000000110000110110000']
> ['Picture2'], ["'#Type2'"],["'10', '10'"], ['00000000000000011000011111000']]