鱼C论坛

 找回密码
 立即注册
查看: 2414|回复: 5

[已解决]当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上

[复制链接]
发表于 2020-11-3 09:30:13 | 显示全部楼层 |阅读模式
5鱼币
file_view(file_name,line_num):
    print('\n文件%s的前%d行是:' % (file_name,line_num))
    f = open(file_name)
    for i in range(int(line_num)):
        print(f.readline(),end = '')     #这里为什么加end = '',不加的话为什么会隔行打印f.readline()
    f.close()
最佳答案
2020-11-3 09:30:14
因为readline会读取整行内容,包括末尾的换行符,因此在print打印的时候,本来就会打印回车换行,若不设置end参数的话,print会再打印一个回车换行符,这样就会出现一个空行。

print函数 end 参数是控制输出结尾符的,默认值是'\n',即回车换行,因为这里不需要它了,所以就设置end参数为空字符串

最佳答案

查看完整内容

因为readline会读取整行内容,包括末尾的换行符,因此在print打印的时候,本来就会打印回车换行,若不设置end参数的话,print会再打印一个回车换行符,这样就会出现一个空行。 print函数 end 参数是控制输出结尾符的,默认值是'\n',即回车换行,因为这里不需要它了,所以就设置end参数为空字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-3 09:30:14 | 显示全部楼层    本楼为最佳答案   
因为readline会读取整行内容,包括末尾的换行符,因此在print打印的时候,本来就会打印回车换行,若不设置end参数的话,print会再打印一个回车换行符,这样就会出现一个空行。

print函数 end 参数是控制输出结尾符的,默认值是'\n',即回车换行,因为这里不需要它了,所以就设置end参数为空字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-3 09:49:22 From FishC Mobile | 显示全部楼层
本帖最后由 jackz007 于 2020-11-3 09:50 编辑

      因为 readline() 按行读取文件,而每一行文本的末尾一定是换行符 "\n" ,print() 如果不加 end = "" 选项,缺省就是 end = "\n",就是说,在不干预这个选项的情况下,每次执行 print() 最后都要换行,干预后,就可以不换行。所以,在不加 end = "" 的情况下,文本本身自带末尾的换行符,print() 在显示完文本后,又会再显示一个换行符,于是,我们看到的效果就是每显示一行文本,就会空两行的现象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-3 10:30:12 | 显示全部楼层
jackz007 发表于 2020-11-3 09:49
因为 readline() 按行读取文件,而每一行文本的末尾一定是换行符 "\n" ,print() 如果不加 end = ""  ...

不加end=' '的话,应该是显示一行文本,空一行的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-3 10:33:01 | 显示全部楼层
jackz007 发表于 2020-11-3 09:49
因为 readline() 按行读取文件,而每一行文本的末尾一定是换行符 "\n" ,print() 如果不加 end = ""  ...

明白了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-3 13:02:15 | 显示全部楼层
Keep it Simple, Simple...  

假装NB,^_
def file_view(fn = input('输入文件名(全路径):'), n = int(input('行数:'))):
    with open(fn) as f:
        return ''.join([line for line in f][:n])

print(file_view())
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 23:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表