当前位置: 首页 > 工具软件 > F.I.S > 使用案例 >

python笔记—文件中的f.readline()方法解析

楚嘉纳
2023-12-01

**

首先一般解读是

f.readline() :从文件中读取一整行字符串(包括末尾的换行’\n’)

通过例子具体来看

1、

编写一个程序,当用户输入文件名和行数(N)后,将该文件的前N行内容打印到屏幕上

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)

这里通过for循环,设置循环次数为需要打印的行数,每次循环都调用readline(),它相当于指针一样,读取了第一句下次就从第一句出发去读取第二句。所以循环N次,就打印了N行。

2、

要求在上一题的基础上扩展,用户可以随意输入需要显示的行数。(如输入13:21打印第13行到第21行,输入:21打印前21行,输入21:则打印从第21行开始到文件结尾所有内容)

def file_print(file, paragraph):
    (start, end) = paragraph.split(':')
    if start == '':
        start = 1
    else:
        start = int(start)
    if end == '':
        end = -1
    else:
        end = int(end)

    f = open(file)
    if start == 1:
        if end == -1:
            print('''文件%s的从开头到结束的内容如下:''' % file)
        else:
            print('''文件%s的从开头到第%d行的内容如下:''' % (file, end))
    else:
        if end == -1:
            print('''文件%s的从%d行到结束的内容如下:''' % (file, start))
        else:
            print('''文件%s的从第%d行到第%d行的内容如下:''' % (file, start, end))

    for i in range(start - 1):
        f.readline()
    num = end - start + 1
    if num < 0:
        print(f.read())
    else:
        for i in range(num):
            print(f.readline())
    f.close()


file_name = input(r'请输入要打开的文件(C:\\test.txt):')
paragraph = input('请输入需要显示的行数【格式如13:21或:21或21:】:')
while paragraph == '':
    paragraph = input('输入有误,请重新输入:')
file_print(file_name, paragraph)

这题更加明显的体现了f.readline()的使用过程,比如想要打印10–15行,就先循环9次,使其停留在第九行结束,然后再循环6次并将其打印。

 类似资料: