当前位置:   article > 正文

Day11_Files and exceptions_奇安信网康科技防火墙 rce

奇安信网康科技防火墙 rce
"""
Author:黄骏捷
Date:2019-10-10

操作模式	具体含义
'r'	读取 (默认)
'w'	写入(会先截断之前的内容)
'x'	写入,如果文件已经存在会产生异常
'a'	追加,将内容写入到已有文件的末尾
'b'	二进制模式
't'	文本模式(默认)
'+'	更新(既可以读又可以写)

读取文本文件

from datetime import time
from fileinput import filename
from math import sqrt


def main():
    f = open('致橡树.txt','r',encoding='utf-8')
    print(f.read())
    f.close()

if __name__ == '__main':
    main()
"""
from math import sqrt

"""
如果open函数指定的文件不存在或者无法打开,那么将引发异常状况导致程序崩溃。
为了让代码有一定的健壮性和容错性,使用py的异常机制进行处理

def main():
    f = None
    try:
        f = open('致橡树.txt','r',encoding='utf-8')
        print(f.read())
    except FileNotFoundError:
        print('无法打开指定的文件!')
    except LookupError:
        print('指定了未知的编码!')
    except UnicodeDecodeError:
        print('读取文件时解码错误!')
    finally:
        if f:
            f.close()

if __name__ == '__main__':
    main()

"""
"""
可以使用for-in循环逐行读取 或者 readliness方法 将文件按行读取到一个列表容器中

def main():
    #一次性读取整个文件内容
    with open('致橡树.txt','r',encoding='utf-8') as f:
        print(f.read())

    #通过for-in循环逐行读取
    with open('致橡树.txt',mode='r') as f:
        for line in f:
            print(line,end='')
            time.sleep(0.5)
    print()

    #读取文件按行读取到列表中
    with open('致橡树.txt') as f:
        lines = f.readlines()
    print(lines)

if __name__ == '__main__':
    main()
"""
"""
将文本信息写入文件
1-99之间的素数保存在a.txt中,100-999之间的素数保存在b.txt中,1000-9999之间的素数保存在c.txt中
"""
def is_prime(n):
    """判断素数的函数"""
    assert n>0
    for factor in range(2,int(sqrt(n))+1):
        if n % factor == 0:
            return False
    return True if n != 1 else False

def main():
    filenames = ('a.txt','b.txt','c.txt')
    fs_list = []
    try:
        for filename in filenames:
            fs_list.append(open(filename,'w',encoding='utf-8'))
        for number in range(1,10000):
            if is_prime(number):
                if number<100:
                    fs_list[0].write(str(number) + '\n')
                elif number<1000:
                    fs_list[1].write(str(number) + '\n')
                else:
                    fs_list[2].write(str(number) + '\n')
    except IOError as ex:
        print(ex)
        print('写文件时发生错误!')
    finally:
        for fs in fs_list:
            fs.close()
    print('操作完成!')

if __name__ == '__main__':
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/150825
推荐阅读
相关标签
  

闽ICP备14008679号