2024-05-29 10:22:25 发布
网友
我有一个文本文件。我想逐行读取文件,用分隔符拆分,并每隔n分隔符生成元组。例如:
n
"A-B-C-D E-F-G Thank You! For Helping Stranger-seeker "
上述行的输出将如下所示:
(A,B,C,D) (E,F,G\n\nThank You!\n\nFor Helping\n\nStranger,seeker)
如果您能帮助我用Python解决问题,我将非常感激。你知道吗
我的解决办法是一次读取整个文件。请帮我改进一下。你知道吗
打开(文件名)为fp:
data = fp.read() my_values = data.split('-') my_data = [] count = 0 rem_values = [] delimiter_count = len(my_values) - 1 for x in range(len(my_values)): count += 1 if count == 4: split_val = my_values[x].split("\n") if len(split_val) == 2: count = 1 my_data.append(split_val[0] ) rem_values.append(my_data ) my_data = [ split_val[1] ] else: count = 1 my_data.append(split_val[0] ) rem_values.append(my_data ) else: my_data.append( my_values[x] )
打印(rem\ U值)
itertools中有一个grouper的配方。您可以使用它将列表分组为固定长度的组
grouper
>>> from itertools import zip_longest >>> def grouper(iterable, n, fillvalue=None): ... "Collect data into fixed-length chunks or blocks" ... # grouper('ABCDEFG', 3, 'x') > ABC DEF Gxx" ... args = [iter(iterable)] * n ... return zip_longest(*args, fillvalue=fillvalue) ... >>> data = open('tmp.txt').read().split('-') >>> list(grouper(data, 4)) [('A', 'B', 'C', 'D\nE'), ('F', 'G\nThank You!\nFor Helping\nStranger', 'seeker\n', None)]
您可以拆分输入字符串,然后在列表的滚动片上使用列表理解:
s = '''A-B-C-D E-F-G Thank You! For Helping Stranger-seeker''' l = s.split('-') print([l[i:i+3] for i in range(0, len(l), 3)])
这将输出:
[['A', 'B', 'C'], ['D\n\nE', 'F', 'G\n\nThank You!\n\nFor Helping\n\nStranger'], ['seeker']]
我的解决办法是一次读取整个文件。请帮我改进一下。你知道吗
打开(文件名)为fp:
打印(rem\ U值)
itertools中有一个
grouper
的配方。您可以使用它将列表分组为固定长度的组您可以拆分输入字符串,然后在列表的滚动片上使用列表理解:
这将输出:
相关问题 更多 >
编程相关推荐