[Python] Python を使用して YAML ファイルと CSV ファイルの内容を読み取る

1.YAMLファイル

1. YAML ファイルの概要

Web UIの自動テストでは、使用する設定情報をYAML形式のファイルに保存することができ、YAML言語ではインデックスを空白記号で表現するため、設定ファイルの表現に適しています。
YAML ファイルの基本的な構文規則は次のとおりです。

  • 大文字と小文字を区別。
  • インデントを使用して階層関係を示します。
  • インデントにはタブは使用できません。スペースのみが使用できます。
  • 同じレベルの要素が左揃えである限り、入力する空白の量は重要ではありません。
  • 「#」はコメントを表します。

YAML ファイルはさまざまなデータ型をサポートします。

知らせ:

  • YAML ファイルの内容は yaml.load によって処理されます。
  • デフォルト パラメータ Loader=yaml.FullLoader を追加して、デフォルト ローダ FullLoader を介した任意の関数の実行を禁止します。

2. Python は YAML ファイルを処理します

まず、次の内容を含む「my_yaml_1.yml」という名前のファイルを作成します。

websites:
  url: "http://localhost:81/redmine/"
  ip: "127.0.0.1"
#冒号前没有空格,冒号后一个空格

次に、そのファイルを読み取るスクリプトを作成します。

import yaml

with open('my_yaml_1.yml','r',encoding='utf8') as f:
    data = yaml.load(f,Loader=yaml.FullLoader)
    print(data)
    print(data['websites']['url'])
    print(data['websites']['ip'])

操作の結果は次のようになります。
ここに画像の説明を挿入

Web UI自動テストでは、システムが使用する構成情報を特定のファイルに複合構造で保存できるため、YAMLファイルの情報を読み取る関数をカプセル化しています。

import yaml

def parse_yml(file,section,key):
    with open(file,'r',encoding='utf8') as f:
        data = yaml.load(f,Loader=yaml.FullLoader)
        return data[section][key]

if __name__ == '__main__':
    value = parse_yml('my_yaml_1.yml','websites','url')
    print(value)

操作の結果は次のようになります。
ここに画像の説明を挿入

2.CSVファイル

1. CSVファイルの概要

自動テストでは、比較的複雑なテスト データを Excel や CSV ファイルなどのテーブルに配置できます。
CSV ファイルはワードパッドで開くことができ、カンマ区切りのデータ ファイルです。
コードを使用してファイルを読み取る手順は次のとおりです。

  • CSVモジュールをインポートします。
  • csv.reader を使用してデータを処理します。

2. Python は YAML ファイルを処理します

まず、次の内容を含む「my_yaml_1.yml」という名前のファイルを作成します。

name,password,status
admin,error,0
admin,root,1

次に、そのファイルを読み取るスクリプトを作成します。

import csv

with open('my_csv.csv','r',encoding='utf8') as f:
    data = csv.reader(f)
    print(data)
    for i in data:
        print(i)

実行結果は次のとおりです:
ここに画像の説明を挿入
自動テストでは、データをテスト パラメーターとして使用できるように、CSV ファイル内のデータをネストされたリストとして返す必要があります。サンプル コードは次のとおりです。

import csv

def parse_csv(file):
    mylist = []
    with open(file,'r',encoding='utf8') as f:
        data = csv.reader(f)
        for i in data:
            mylist.append(i)
        del mylist[0] #删掉标题行的数据
        return mylist

if __name__ == '__main__':
    data = parse_csv('my_csv.csv')
    print(data)

操作の結果は次のようになります。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/jylsrnzb/article/details/131463943