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

新手上路,请多包涵

我正在尝试提取文件中每一行的第一个字母,然后将这些字母打印到一个新文件中。我正在逐步工作,所以我创建了能够提取每一行的第一个字母的代码,但是,当我添加代码以读取特定文件时,它似乎没有正确地遍历整个文件内容。有谁知道为什么我的 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()

输出:

 >>> secret2('file.txt')
A
'A'
>>>

正确的输出是:

 >>> secret2('file.txt')
'ALICE'
>>>

原文由 penmas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 360
1 个回答

您希望将每一行视为单个数据。所以使用 readlines() 而不是 read 。所以你的代码应该是

def secret2(m):
    infile = open(m, 'r')
    text = infile.readlines()
    for j in (text):
        print j[0]

原文由 mkHun 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题