如何使用python打印多行文件?

时间:2016-02-19 21:35:48

标签: python file-io input io

每当我尝试使用我的python程序读取文件时,在命令停止之前我只得到一行。我很确定它与print(line)有关,但我不知道其他选择。这是我到目前为止所做的:

def fopen():
    file = input("Open: ")
    print("")
    with open(file, 'r') as f:
        for line in f:
            print(line)
            print("")
            editredirect()

def editredirect():
    print("You can edit this file with the 'edit' command.")
    dcmdLvl2()

dcmdLcl2()只是将我发回我的命令行。

3 个答案:

答案 0 :(得分:2)

是否要为文件中的每个行打印"You can edit this file..."?可能不是......

另外,如果dcmdLvl2()出于某种原因退出脚本,那么,你只会看到你文件的一行。

尝试取消缩进editredirect()

def fopen():
    file = input("Open: ")
    print("")
    with open(file, 'r') as f:
        for line in f:
            print(line)
            print("")   # new line?
    editredirect()

def editredirect():
    print("You can edit this file with the 'edit' command.")
    dcmdLvl2()

答案 1 :(得分:0)

由于缩进,您的editredirect()位于循环内部。 尝试删除缩进并将editredirect()(可能还有print(""))移出循环。

答案 2 :(得分:0)

您在阅读一行后重定向到命令行,您应该从editredirect循环中删除for

def fopen():
   file = input("Open: ")
   print("")
   with open(file, 'r') as f:
      for line in f:
          print(line)
          print("")
   editredirect()