祝建宇 发表于 2020-8-21 13:22:41

疑问

def file_print(file, num):
    f = open(file)
    print('''文件%s的前%d行的内容如下:''' % (file, num))
    for i in range(num):
      print(f.readline())
    f.close()


file_name = input('请输入要打开的文件(C:\\test.txt):')
num = int(input('请输入需要显示该文件前几行:'))
file_print(file_name, num)

大佬们,红字部分我改成f,可以吗?

聂嘉辉 发表于 2020-8-21 13:25:36

本帖最后由 聂嘉辉 于 2020-8-21 13:27 编辑

可以,但是行数就变成了全部读取

聂嘉辉 发表于 2020-8-21 13:26:52

本帖最后由 聂嘉辉 于 2020-8-21 13:45 编辑

但是行数就变成了全部读取
最好这样写
def file_print(file, num):
    with open(file, 'r') as f:
      print('''文件%s的前%d行的内容如下:''' % (file, num))
      for i in f.readlines():
            print(i)

file_name = input('请输入要打开的文件(C:\\test.txt):')
num = int(input('请输入需要显示该文件前几行:'))
file_print(file_name, num)

Twilight6 发表于 2020-8-21 14:07:19

本帖最后由 Twilight6 于 2020-8-21 14:08 编辑



可以只不过要把下面打印 print(f.readline()),改成 print(i) ,否则会跳行读取

参考代码:

def file_print(file, num):
    f = open(file)
    print('''文件%s的前%d行的内容如下:''' % (file, num))
    for i in f:
      print(i)
    f.close()


file_name = input('请输入要打开的文件(C:\\test.txt):')
num = int(input('请输入需要显示该文件前几行:'))
file_print(file_name, num)


祝建宇 发表于 2020-8-21 15:32:01

Twilight6 发表于 2020-8-21 14:07
可以只不过要把下面打印 print(f.readline()),改成 print(i) ,否则会跳行读取

参考代码:


跳行的原因是为什么?

Twilight6 发表于 2020-8-21 15:37:52

祝建宇 发表于 2020-8-21 15:32
跳行的原因是为什么?

for 循环读取一行时候f.readline() 再次读取,也读取了一行
页: [1]
查看完整版本: 疑问