Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将长字符串分为513个字符块| Python 3.3_Python_String - Fatal编程技术网

将长字符串分为513个字符块| Python 3.3

将长字符串分为513个字符块| Python 3.3,python,string,Python,String,我需要用python 3.3逐行读取一个.txt文件,并拆分字符长度格式:Mehsaoshahshudo。。。。分为513个字符块。 我的代码适用于第一行,但下一行不起作用,我无法找出原因 我还对如何让代码重复nextline函数直到文件结束感到困惑。这个文件大约有500行长 这就是我到目前为止所做的: with open('bsxlength.txt' , 'r') as string: first_line = string.readline() n = 513 pr

我需要用python 3.3逐行读取一个.txt文件,并拆分字符长度格式:Mehsaoshahshudo。。。。分为513个字符块。 我的代码适用于第一行,但下一行不起作用,我无法找出原因

我还对如何让代码重复nextline函数直到文件结束感到困惑。这个文件大约有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个),并生成一个新块。但是一步一个脚印,嗯

next_line = string.readline(+2)
表示从当前行读取最多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)]
现在回到最初的方法:.readline采用的可选参数大小指定了最多应从当前行读取的字符数。因此,您可以使用它来实现您的目标:

with open('bsxlength.txt' , 'r') as string:
    result = []
    while True:
        chunk = string.readline(513)
        if chunk:
            result.append(chunk)
        else:
            break
表示从当前行读取最多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)]
现在回到最初的方法:.readline采用的可选参数大小指定了最多应从当前行读取的字符数。因此,您可以使用它来实现您的目标:

with open('bsxlength.txt' , 'r') as string:
    result = []
    while True:
        chunk = string.readline(513)
        if chunk:
            result.append(chunk)
        else:
            break

非常感谢!任何关于如何倒数的线索都可以看到编辑一对不起,我打错了;它应该是字符串中的行,而不是文件。请看我的编辑。可能是一个愚蠢的问题,但如何打印我正在使用Canopy Enthough,因为没有任何其他软件,它似乎只在使用“打印”一词时显示输出。这会不会留下任何长度小于513个字符的行未被触及。因为我只需要拆分那些长度更大的行。仍然需要任何自然产生的较小片段。您可以在循环期间打印chunk或之后打印结果。不,它不会丢弃较短的行-正如我上面解释的,大小指定从当前行读取的字符的上限。非常感谢!任何关于如何倒数的线索都可以看到编辑一对不起,我打错了;它应该是字符串中的行,而不是文件。请看我的编辑。可能是一个愚蠢的问题,但如何打印我正在使用Canopy Enthough,因为没有任何其他软件,它似乎只在使用“打印”一词时显示输出。这会不会留下任何长度小于513个字符的行未被触及。因为我只需要拆分那些长度更大的行。仍然需要任何自然产生的较小片段。您可以在循环期间打印chunk或之后打印结果。不,它不会丢弃较短的行-正如我上面解释的,size指定从当前行读取的字符的上限。可能重复:可能重复: