返回文件中行的第一个字母

pen*_*mas 5 python python-3.x

我试图提取文件中每一行的第一个字母,然后将这些字母打印到新文件中。我正在逐步工作,因此我创建了能够提取每一行的第一个字母的代码,但是,当我添加代码来读取特定文件时,它似乎没有正确迭代整个文件内容。有谁知道为什么我的 for 循环不迭代?或者也许是它正在迭代但没有正确地将字母添加到“行”的问题。

def secret2(m):
    infile = open(m, 'r')
    text = infile.read()
    for line in text:
        lines = text[0]
        for i in range(len(text)):
            if text[i] == '\n':
                lines += text[i+1]
            print(lines)
            return(lines)
        m.close()
Run Code Online (Sandbox Code Playgroud)

输出:

>>> secret2('file.txt')
A
'A'
>>> 
Run Code Online (Sandbox Code Playgroud)

正确的输出是:

>>> secret2('file.txt')
'ALICE'
>>>
Run Code Online (Sandbox Code Playgroud)

nie*_*mmi 1

您的代码正在迭代字符而不是行。您可以使用以下代码打印每行的第一个字符:

def secret2(m):
    with open(m) as infile:
        print(''.join(line[0] for line in infile if line))
Run Code Online (Sandbox Code Playgroud)