Pythonミニマリストチュートリアル03:ファイルの読み取りと書き込みおよび例外処理

みなさん、こんにちは。タンおじさんです。

このセッションでは、Pythonでのファイルの読み取りと書き込みおよび例外処理について説明します。

目的:シーンメソッドの説明を通じて、初心者向けに必要なファイルの読み取りと書き込み、および例外処理の書き込みステートメントを習得します。

ファイルの読み取りと書き込み

**初心者向けです。**それをどのように理解しますか?

最初にシナリオについて話しましょう。コンピュータのデスクトップにxlsテーブルがあり、Excel Officeソフトウェアで開き、コンテンツを読み取る(読み取る)必要があります。コンテンツに問題が見つかった場合は、テーブルデータを変更します。 (書きます)。この操作はExcelソフトウェアの読み取りと書き込みと呼ばれ、職場では高周波操作です。

類推すると、Pythonのファイル読み取りは、率直に言って、Pythonソフトウェアを使用してファイルを開き、ファイルを変更することです。

初心者はどのように学びますか?

文法をマスターするだけです。

infile.readline()  #readline()方法读取下一行,以读取\n结束的一行
infile.readlines()  #readlines()方法读取所有行并放入一个字符串列表中
outfile.write("Sun\n")

with open('test.txt', "w") as f:
    f.truncate() # 清空数据
    f.write('aaaaa') # 写数据

with open('test.txt', "r") as f:    
    print(f.readline()) # 读数数据

open中的第二个参数:   
r 为了读取打开一个文件
w 为了写入打开一个文件,如果文件以及存在,它的内容就会被销毁
a 打开一个文件从文件末尾追加数据
rb 为读取二进制数据打开文件
wb 为写入二进制数据打开文件

**すでに始めている方へ。**自動テストのアプリケーションシナリオは何ですか?

  • プログラムはさまざまな構成に依存しており、iniやyamlなどの構成ファイルを読み書きする必要があります。
  • プログラムはグローバルパラメータを計画しておらず、後で使用するためにデータを一時的に保存する必要があります。
  • プログラムの実行中、実行後のレポートとデータの書き込みと読み取り中のログ。
  • データ駆動型の自動テストの場合、データストレージファイル(json、dbなど)の読み取りと書き込み
  • ……

したがって、習得する必要があり、コンテンツを習得するための鍵でもあります。

Uncle Tanの自動テストの経験に基づいて、優れたファイルクラス(メソッド)のカプセル化により、コーディング効率が大幅に向上します。同時に、テストフレームワークの場合、フレームワークの移行能力と互換性の強度のテストになります。(たとえば、インターフェイス自動化コードの別のセットを引き出して、UI自動化コードにアセンブルする必要があります)

例外処理

**初心者向けです。**それをどのように理解しますか?

最初にシーンについて話しましょう。ある日、Douyinをスワイプしていると、突然「ping」音が鳴り、画面にポップアップウィンドウがポップアップします。バッテリーが20%未満です。時間内に充電してください。

バッテリーが20%未満になると、電話でプロンプトが表示されます。類推すると、プログラムがプロンプトやアラームを出す、中止するなどのいくつかの例外を処理する必要がある場合...要するに、適切な方法を使用してそれを取得します。

初心者はどのように学びますか?

実際、例外処理が使用されることは比較的まれです。結局のところ、自動テストの要件は高くなく、プロジェクトチームは、nullポインターや例外のキャッチの失敗などの動作に対して比較的大きな許容度を持っています。

しかし、あなたはそれをすることはできませんか?

もちろん、それは行われるべきです。

だから、怠惰にならないでください。

try:
    <body>     # 包含了可能抛出异常的代码,当一个异常出现时,<body>中剩余代码被跳过。如果该异常匹配一个异常类型,那么该类型下的处理代码将被执行。
except <ExceptionType1>:
    <Handler1>   # 是处理异常的代码。
    ……
except <ExceptionTypeN>:
    <HandlerN>
except:
    <handleExcept>
else:
    <process_else>
finally:
    <process_finally>
1、首先,try和except之间的语句(即body)被执行。
2、如果没有异常出现,跳过except子句。
3、如果在执行try子句时出现异常,子句的剩余部分将会被跳过。
4、当一个异常出现时,如果异常类型匹配关键字except之后的异常名,那么这个except子句被执行,然后继续执行try语句之后的语句。
5、如果一个异常出现但是异常类型不匹配except子句中的异常名,那么这个异常被传递给这个函数的调用者;如果没有找到处理该异常的处理器,那么这是一个未处理异常且终止程序显示错误信息
6、多个except语句与elif语句类似
7、一个try语句可以有一个可选择的finally块,用来定义收尾动作,无论何种情况都会执行这个块。
且finally的执行,会在try的return之前执行,故实际应用中,不推荐在finally中使用return返回,
否则,无论如何,都是finally中的被返回。

別の実用的な例:

def main():
    try:
        number1, number2 = eval(input("分别输入两个数字(用逗号隔开):"))
        result = number1 / number2
        print("它们的商是:", result)
    except ZeroDivisionError:
        print("除以0,错误!")
    except SyntaxError:
        print("数字间未输入逗号!")
    except:
        print("输入出错了!")
    else:
        print("没有错误!")
    finally:
        print("已执行完!")

main()

解析例:

try:
    <statements>            # main action
except <name1>:             # 当try中发生name1的异常时处理
    <statements> 
except (name2, name3):      # 当try中发生name2或name3中的某一个异常的时候处理
    <statements>
except <name4> as <data>:   # 当try中发生name4的异常时处理,并获取对应实例
    <statements>
except:                     # 其他异常发生时处理
    <statements>
else:                       # 没有异常发生时处理
    <statements>
finally:                    # 不管有没有异常发生都会处理
    <statements>

いつものように、要約

01ファイルの読み書きは重要かつ必要であり、文法を習得するのは非常に簡単です(コンテキストマネージャースタイルのライティング)。

02例外処理はあなた次第です。初心者はスキップできますが、知識を予約する必要があり、使用するとすぐに開始できます。

おすすめ

転載: blog.csdn.net/wukonginsight/article/details/122366035