Python 获取列表中每行的长度

Python 获取列表中每行的长度,python,Python,我有一个文本块,我想在任何少于50个字符的行末尾添加一个新行字符 这就是我所处的位置 text = open('file.txt','r+') line_length = [] lines = list(enumerate(text)) for i in lines: line_length.append(len(i)) print lines print line_length 我只是一次又一次地得到一个值为2的大列表。我知道每条线的长度不是2 编辑:这是我采用的解决方案 te

我有一个文本块,我想在任何少于50个字符的行末尾添加一个新行字符

这就是我所处的位置

text = open('file.txt','r+')

line_length = []
lines = list(enumerate(text))

for i in lines:
    line_length.append(len(i))

print lines
print line_length
我只是一次又一次地得到一个值为2的大列表。我知道每条线的长度不是2

编辑:这是我采用的解决方案

text = open('text.txt','r+')
new = open('new.txt','r+')

new.truncate(0)

l=[]

for i in text.readlines():
    if len(i) < 50:
        l.append(i+'\n')
    else:
        l.append(i)

new.write(' '.join(l))

text.close()
new.close()
text=open('text.txt','r+'))
new=open('new.txt','r+'))
新建.truncate(0)
l=[]
对于文本中的i.readlines():
如果len(i)<50:
l、 附加(i+'\n')
其他:
l、 附加(i)
新建。写入(“”。加入(l))
text.close()
new.close()
就像:

text = open('file.txt','r+')
l=[]
for i in text.readlines():
    if len(i)<50:
        l.append(i)
    else:
        l.append(i.rstrip())
因此,由于
枚举
,您的代码无法工作

两种情况:

print(l)

是所需的输出。

是成对的列表(每对的长度为两个)。您需要检查子列表的长度,而不是它所在的对:

for i, seq in lines:
  line_length.append(len(seq))

虽然,正如您所看到的,您没有使用
i
,因此使用
enumerate
没有任何意义

假设您正在尝试写入新文件,您将需要以下内容:

with open("file.txt", "r+") as input_file, open("output.txt", "w") as output_file:
    for line in input_file:
        if len(line) < 50:
            line += '\n'
        output_file.write(line)
打开(“file.txt”、“r+”)作为输入文件,打开(“output.txt”、“w”)作为输出文件:
对于输入_文件中的行:
如果长度(线)<50:
行+='\n'
输出_文件。写入(行)

现有文件中的行的末尾通常已经有一个换行符,因此对于长度小于50的行,结果将是两个换行符。如果需要避免这种情况,请使用
rstrip

不要使用
enumerate
,因为它实际上是在附加一个
(索引,行)
元组(长度为2),而不仅仅是一个行字符串。不要使用
enumerate
,或者如果必须获取行号,请对i执行
,行中的行:…
只是为了确认,text.readlines()遍历并将每行分隔为其自己的值,然后for循环的每个实例将这些函数应用于该单独的行/值。
with open("file.txt", "r+") as input_file, open("output.txt", "w") as output_file:
    for line in input_file:
        if len(line) < 50:
            line += '\n'
        output_file.write(line)