吃瓜第一名 发表于 2020-10-13 23:19:08

第029讲:文件:一个任务

求助大神,这是29讲课后作业第三题,我做出来的结果没有第一行的字,尝试了很久都没解决,有没有大神花一点时间帮我看看。
name = input('请输入要打开的文件:')
f1 = open('E:/'+ name,'r',encoding ='utf-8')
result = []
def add(name,num1,num2,result):
    print('文件%s%s'%(name,result))
    b = -1
    a =(num2 - num1)
    while num2:
      num2 -= 1
      b += 1
      f1.readline()
      while b >= num1 and a :
            a -= 1
            print(f1.readline())
    f1.close()
num = input('请输入需要显示的行数【格式如 13:21 或 :21 或21:】:')
(num1,num2) = (num.split(':',1))
lenth = len(open('E:/record.txt','r',encoding='utf-8').readlines())

if num1 == ' ' and num2 != ' ':
    result = ('从开始到%s行的内容为:'%num2)
if num1 != ' ' and num2 == ' ':
    result = ('从%s行到结尾的内容为:'%num1)
if num1 != ' ' and num2 != ' ':
    result = ('从%s行到%s行的内容为:'%(num1,num2))
if num1 == ' ' and num2 == ' ':
    result = ('全文的内容为:')
if num1 == ' ':
    num1 = 0
if num2 == ' ':
    num2 = int(lenth)   

num1 = int(num1) -
num2 = int(num2)
add(name,num1,num2,result)

Twilight6 发表于 2020-10-13 23:23:57



while num2:
      num2 -= 1
      b += 1
      f1.readline()    # 去掉这行即可
      while b >= num1 and a :
            a -= 1
            print(f1.readline())

你 while 循环里先读取了下文件对象,所以此时文件指针移动到第二行开头


吃瓜第一名 发表于 2020-10-14 12:30:49

Twilight6 发表于 2020-10-13 23:23
你 while 循环里先读取了下文件对象,所以此时文件指针移动到第二行开头

哦~搞懂了,谢谢大佬
页: [1]
查看完整版本: 第029讲:文件:一个任务