美文网首页Python爬虫作业
笨方法学Python的心得体会-EX20

笨方法学Python的心得体会-EX20

作者: Jerome_vae | 来源:发表于2017-06-10 18:04 被阅读636次

    经过了一段时间的学习,终于跟着《笨方法学Python》慢慢学到了第20题
    是的,第20题,进度有够慢的,大写加粗的囧
    上班了之后再学习的精力和速度确实比不上在学校时候的高效;但是,学习从来就不是百米冲刺,而是马拉松,所以,相信多琢磨,总是会有进步的。


    今天在练习过程中,想着把前几道练习题的知识点全部揉在这一题里面,将知识点穿插,创造新的有意思的环境和挑战。包括os.path中的exists和sys中的argv,一起上台。
    将一个原本是读取一存在文件,并打印出来的题目变成了,判断指定文件是否存在->是否修改/编辑文件->统计文件行数->打印某一行,这种复杂一些的任务。
    在练习过程中遇到了诸如,While函数的缺失导致break函数的引用错误,和打印文件中某行文件时候的游标重置问题。
    打怪升级的日子里,还好有学习小组的各位大神帮忙打助攻,不然也是一囧到底的。
    好,就分开附上各路代码吧。

    # @Program:Exercies20
    # @Name:WeiChat威威威
    # @Time:2017.6.10
    
    
    from sys import argv
    from os.path import exists
    
    script, input_file = argv
    
    def print_all(f):
               print (f.read())
    
    def rewind(f):
               f.seek(0)
    
    def print_a_line(line_count, f):
               f.seek(0)
               Cal = int(line_count)
               Cal2 = Cal - 1
               print('这是第 %d 行' % Cal)
               print (f.readlines()[Cal2])
    

    首先自定义各路函数,f.read(), f.readline(), f.readlines()的用法还真的不一样。
    建议全盘打印时候用f.read()
    判断文件行数时候用len(f.readlines())

    print ('存在一个这样的文件吗? %r' % exists(input_file))
    if exists(input_file):
        Judge_1st = input('是否要对这个文件进行修改?(是/否): ')
        if Judge_1st != '否':
               Judge_2nd = input('是否要删除原文件所有内容?(是/否): ')
               if Judge_2nd != '否':
                          current_file = open(input_file, 'w')
                          print ('现在正在删除原文件内容......')
                          print('请输入你想要输入的内容: \n')
                          while True:
    
                                    line = input('>>: ')
                                    if line !='.':
                                        current_file.write(line)
                                        current_file.write('\n')
                                    else:
                                        current_file.close()
                                        break
               else:
                          current_file = open(input_file, 'a')
    
                          print('请输入你想要输入的内容: \n')
                          while True:
                                     line = input('>>: ')
    
                                     if line !='.':
                                         current_file.write(line)
                                         current_file.write('\n')
                                     else:
                                         current_file.close()
                                         break
    else:
        Judge_1st = input('是否要添加这样的文件?(请输入 是/否):')
        if Judge_1st != '否':
            current_file = open(input_file, 'w')
            print('请输入你想要输入的内容: \n')
            while True:
                line = input('>>: ')
                if line != '.':
                    current_file.write(line)
                    current_file.write('\n')
                else:
                    current_file.close()
                    break
        else:
            print('\n好的收工,( ^_^ )/~~拜拜')
    
    

    这里的思路是,先判断是否存在这个文件,不存在的话是否要新建,否则结束。若存在文件是否要修改文件
    open(file, 'a')a是会在文件末尾直接添加输入der
    open(file, 'w')w是会直接覆盖原文件内容der

    Judge_3st = input('是否想查看 % r (请输入:是/否): ' % input_file)
    if Judge_3st != '否':
               current_file = open(input_file, 'r')
               num = len(current_file.readlines())
               #print ('First let\'s print the whole file : \n')
    
              # print_all(current_file)
    
               print ('Now let\'s rewind, kind of like a tape.')
    
               rewind(current_file)
               print ('Let\'s print the lines you want: ')
               print('文件有 %d 行' % num)
               while True:
                          wline = input('你希望看到文件的第几行?(请输入数字): ')
    
                          if wline != 'enough':
                                     print_a_line(wline, current_file)
                          else:
                              print('\n好的收工,( ^_^ )/~~拜拜')
                              break
    else:
               print ('\n好的,收工,( ^_^ )/~~拜拜')
    
    

    这样就可以实现知道文件有多少行,需要看第几行的功能啦
    啦啦啦啦啦


    这条代码打了一下午,但是收获还是有的
    发上来分享一下

    相关文章

      网友评论

        本文标题:笨方法学Python的心得体会-EX20

        本文链接:https://www.haomeiwen.com/subject/fbhcqxtx.html