在Python中逐行读取文件

hel*_*004 1 python io file python-3.x

我对Python很陌生。所以我正在尝试我的第一篇基本代码。所以我试图读取文件并在Python中逐行打印。这是我的代码:

class ReadFile(object):

    def main (self):

        readFile = ReadFile()
        readFile.printData()

    def printData(self):

        filename = "H:\\Desktop\\TheFile.txt"

        try:
            with open(filename, 'r') as f:
                value = f.readline()
                print(value)

            f.close()

        except Exception as ex:
            print(ex)
Run Code Online (Sandbox Code Playgroud)

现在,当我运行它时,没有任何输出。所以我尝试调试它。我看到控件从一种方法跳转到另一种方法(主-> printData),然后存在。它在该方法内不执行任何操作。你能告诉我我在做什么错吗?我是新来的,所以对为什么代码表现为这种方式的一点见识也很不错。

Sil*_*ash 6

如果此处的想法是了解如何逐行读取文件,那么您所需要做的就是:

with open(filename, 'r') as f:
  for line in f:
    print(line)
Run Code Online (Sandbox Code Playgroud)

将其放在try-except块中是不典型的。

回到您的原始代码,由于缺乏对如何在python中定义类/如何工作的理解,我认为这里存在一些错误。

您编写该代码的方式表明您可能来自Java背景。我强烈建议您进行Coursera或EdX提供的众多免费且非常好的在线python课程之一。


无论如何,这是我将使用类的方法:

class ReadFile:
    def __init__(self, path):
        self.path = path

    def print_data(self):
        with open(self.path, 'r') as f:
            for line in f:
                print(line)

if __name__ == "__main__":
    reader = ReadFile("H:\\Desktop\\TheFile.txt")
    reader.print_data()
Run Code Online (Sandbox Code Playgroud)