鱼C论坛

 找回密码
 立即注册
查看: 1621|回复: 2

[技术交流] 第29课读取随意行

[复制链接]
发表于 2018-6-26 20:07:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 老乡别跑 于 2018-6-27 16:28 编辑

还是没能自主完成,



def file_view(file_name,line_num):
    f = open(file_name)
    #如果全文
    if line_num == ':':
        print('\n文件%s的全文内容如下:\n' % file_name)
        for eachline in f:
            print(f.readline(),end='')
    # 如果从头至n
    elif line_num == ':%d' % int(line_num):
        print('\n文件%s从开始到第%s行的内容如下:\n' % (file_name,line_num))
        for i in range(int(line_num)):
            print(f.readline(),end='')
# 如果从n至尾
    elif line_num == '%d:' % line_num:
        print('\n文件%s从第%s行到末尾的内容如下:\n' % (file_name,line_num))
        for i in range(int(line_num)):
            print(f.readline(),end='')

# 如果从n至n
    else:
        print('\n文件%s从第%s行到末尾的内容如下:\n' % (file_name,line_num))
        for i in range(int(line_num)):
            print(f.readline(),end='')

    f.close()

file_name = input(r'请输入要打开的文件:')
line_num = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21:】:')
file_view(file_name,line_num)


终于按照自己的思路搞出来了,不好好像很繁琐

def file_view(file_name,line_num):
    f = open(file_name)
    tuple =line_num.partition(':')
    #如果全文
    if line_num == ':':
        print('\n文件%s的全文内容如下:\n' % file_name)
        for eachline in f:
            print(eachline,end='')
    # 如果从头至n
    elif tuple[0] == '' :
        print('\n文件%s从开始到第%s行的内容如下:\n' % (file_name,tuple[2]))
        for i in range(int(tuple[2])):
            print(f.readline(),end='')
    # 如果从n至尾
    elif tuple[2] == '' :
        print('\n文件%s从第%s行到末尾的内容如下:\n' % (file_name,tuple[0]))
        list = []
        for i in f.readlines():
            list.append(i)
        for x in list[int(tuple[0]):]:
            print(x,end='')

    # 如果从n至n
    else:
        print('\n文件%s从第%s行到第%s行的内容如下:\n' % (file_name,tuple[0],tuple[2]))
        list = []
        for i in f.readlines():
            list.append(i)
        for x in list[int(tuple[0]):int(tuple[2])]:
            print(x,end='')

    f.close()

file_name = input(r'请输入要打开的文件:')
line_num = input('请输入需要显示的行数【格式如 13:21 或 :21 或 21:】:')
file_view(file_name,line_num)

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-6-26 22:09:31 From FishC Mobile | 显示全部楼层
你这个int(line_num)肯定要报错,我是以:来分割做出来的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-27 08:37:19 | 显示全部楼层
chongchuigu 发表于 2018-6-26 22:09
你这个int(line_num)肯定要报错,我是以:来分割做出来的

是啊,含有冒号,搞不定,我昨天想来想去,还是得分出来,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 09:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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