zoukankan      html  css  js  c++  java
  • Python 入门日记(十)—— 文件和异常

    2020.07.17 Python 入门的 Day9

    成就:Python 中的文件操作和异常处理

    • 读取整个文件:with open(file_name) as file_object:
    with open('pi_digits.txt') as file_object:
        contents = file_object.read()
    # pi_digits.txt 中的内容会以字符串的形式存在 contents 中
        print(contents.rstrip())
    • contents 后面会自动跟一个换行符。
    • with open 的好处是,Python 可以根据情况自行判断何时关闭文件。
    • 要以每次一行的方式检查文件,可对文件对象使用 for 循环:
    filename = 'pi_digits.txt'
    
    with open(filename) as file_object:
        for line in file_object:
            print(line.rstrip())
    # 每一行都以字符串的形式存在
    • 每一行的字符串后面都会自动跟上一个换行符。
    • 创建一个包含文件各行内容的列表:
    filename = 'pi_digits.txt'
    
    with open(filename) as file_object:
        lines = file_object.readlines()
    # 使用方法 readlines() 使文件中的每一行作为一个字符串
    # 这些字符串组成一个列表 lines
    for line in lines:
        print(line.rstrip())
    • 可使用方法 replace() 将字符串中的特定单词全部都替换为另一个单词。
    message = 'I like dogs and dogs'
    message.replace('dogs', 'cats')
    print(message.replace('dogs', 'cats'))
    # 全部替换
    • 如果将文本写入文件,在调用 open() 时需要提供另一个实参。
    • 读取模式为 'r,写入模式为 'w',附加模式为 'a',读取和写入为 'r+'。
    • 如果省略第二个实参,Python 默认以只读模式打开文件。
    • 如果要写入的文件不存在,函数 open() 会自动创建他。
    • 当使用 'w' 模式时,Python 会先将原来的内容清空。
    • Python 只能将字符串写入文本文件,如果要写入数值,要使用 str()。
    • 使用附加模式 'a' 时,Python 会在原文件的后面继续写入。
    • 使用 try—except—else 代码块处理 ZeroDivisionError 异常:
    print("Give me two numbers, and I'll divide them.")
    print("Enter 'q' to quit.")
    
    while True:
        first_number = input("
    First number: ")
        if first_number == 'q':
            break
        second_number = input("Second number: ")
        if second_number == 'q':
            break
        try:
            answer = int(first_number)/int(second_number)
        except ZeroDivisionError:
            print("You can't divide by 0!")
        else:
            print(answer)
    # 如果 answer = int(first_number)/int(second_number) 出现除零的异常
    # 代码会执行 print("You can't divide by 0!")
    # 如果没有出现异常,执行 print(answer)
    • 使用 try—except—else 代码块处理 FileNotFoundError 异常:
    file_name = 'alice.txt'
    
    try:
        with open(file_name) as f_oj:
            contents = f_oj.read()
    except FileNotFoundError:
        msg = "Sorry, the file " + file_name + " donesn't exist."
        print(msg)
    • 方法 split() 以空格为分隔符将字符串拆分成多个部分,并将这些部分都存储到一个列表中。
    • 使用方法 split() 可以大致统计一篇文章中的单词个数。
    • 如果希望发生异常时程序一声不吭,可使用语句 pass。
    file_name = 'alice.txt'
    
    try:
        with open(file_name) as f_oj:
            contents = f_oj.read()
    except FileNotFoundError:
        pass
    • 模块 json 可以让 Python 数据转存到文件中。
    • 写入:json.dump();读出:json.load()。
    import  json
    
    numbers = [2, 3, 5, 7, 11, 13]
    
    filename = 'number.json'
    with open(filename, 'w') as f_oj:
        json.dump(numbers, f_oj)
    # 将 numbers 写入文件 number.json 中。
    
    with open(filename) as f_oj:
        numberss = json.load(f_oj)
    # 从文件 number.json 中读出数据到 numberss 里
    print(numberss)
  • 相关阅读:
    ostringstream的使用方法
    《算法导论》为什么经典
    JAVA数组的定义及用法
    具体解释Android中AsyncTask的使用
    POJ 1207 The 3n + 1 problem
    图像切割之(五)活动轮廓模型之Snake模型简单介绍
    RapeLay(电车之狼R)的结局介绍 (隐藏结局攻略)
    线程安全和线程不安全理解
    atitit...触发器机制 ltrigger mechanism sumup .的总结O8f
    winrar3.7-winrar4.0的注冊码
  • 原文地址:https://www.cnblogs.com/A-Tree/p/13332873.html
Copyright © 2011-2022 走看看