我需要逐行读取带有python 3.3的.txt文件,并将字符长度(格式:MEHSAOSHAHSHSUDO ....)分成513个字符块。 我的代码适用于第一行,但是下一行不起作用,我无法解决原因。
我也很困惑如何让代码重复下一行函数直到文件结束。该文件大约有500行。
这是我到目前为止所做的:
with open('bsxlength.txt' , 'r') as string:
first_line = string.readline()
n = 513
print [first_line[i:i+n] for i in range(0, len(first_line), n)]
next_line = string.readline(+2)
n = 513
print [next_line[i:i+n] for i in range(0, len(next_line), n)]
三江源
最终的目标是让它将线条分成513个块,如果没有足够的块,例如该行长度为600个字母,用于计算适当数量的字母(例如87个)并制作一个新的块。但是一步一步呃
答案 0 :(得分:4)
Invoke
表示“从当前行读取最多2个字符”,而不是“读取第二行”。 您也不必为每一行手动重复相同的命令 - 只需使用循环:
next_line = string.readline(+2)
现在回到初始方法:with open('bsxlength.txt' , 'r') as string:
n = 513
for line in string:
print [line[i:i+n] for i in range(0, len(line), n)]
采用的可选参数size
指定最多应从当前行读取的字符数。所以你可以用它来实现你的目标:
.readline()