Python腳本之configparser與執(zhí)行shell腳本實用案例(二)

??一般情況下,我們通用屬性一般都是寫在屬性文件中,然后通過configparser根據(jù)其鍵去獲取相對應(yīng)的值,還有就是字典中比較key和value的值,下邊我們這里幾個小需求:

1.通過configparser獲取屬性值
2.Python執(zhí)行shell命令并返回值
3.dict中相同的key值是否相同
4.dict中同一個key缺失list-value中的哪些值
一、通過configparser獲取屬性值

1.1 創(chuàng)建屬性文件 mycf.ini :

[date.list]
day=1,2,3

1.2 讀取屬性文件的值:

import os
import configparser
import datetime


def parse_config_file():
    cf = configparser.ConfigParser()
    cf.read("mycf.ini")  # 配置文件的路徑
    return cf


def get_day_list():
    cf = parse_config_file()
    date_str = cf['date.list']['day']
    d_list = date_str.split(",")
    return d_list

1.3 先創(chuàng)建一個入口函數(shù):

if __name__ == '__main__':
    # 1 讀取前三天的日期
    for day in get_day_list():
        otherStyleTime = (datetime.datetime.today() - datetime.timedelta(int(day))).strftime(
            "%Y-%m-%d")
        print(otherStyleTime)
    # 2 執(zhí)行 shell 命令
    # url = "echo 'hellow'"
    # print(get_shell_url(url))
    # 3 對比同一個key是否value
    # source_dict = {"topic1":"a","topic2":"m","topic3":"y"}
    # sink_dict = {"topic1":"d","topic2":"m"}
    # dict_result = print_dict_result(source_dict, sink_dict)
    # print(dict_result)
    # 4 對比兩個字典中相同key列表的值是否缺失,是否缺失key
    # source_dict = {"topic1": ["a","b","c","d","e"], "topic2": ["m","n","x","y","z"],"topic3": ["o","p"]}
    # sink_dict = {"topic1": ["d","e"], "topic2": ["m","n"]}
    # dict_result = print_dict_result2(source_dict, sink_dict)
    # print(dict_result)

1.4 執(zhí)行效果如下:
image.png
二、Python執(zhí)行shell命令并返回值

2.1 定義函數(shù):

def get_shell_url(url):
    # data = os.popen("curl --insecure --cipher 'DEFAULT:!DH' "+ url +"%s"% a).read()
    baidu_str = os.popen(url).read()
    return baidu_str

2.2 執(zhí)行的效果:
image.png
三、dict中相同的key值是否相同

3.1 定義函數(shù):

# 對比同一個 topic 的值是否相等
def print_dict_result(source_dict, sink_dict):
    # 相同
    source_result_dict = {key: "源值:"+ str(source_dict.get(key,0)) +" <---> 目標(biāo)值:"+ str(sink_dict.get(key,0)) for key in set(source_dict.keys())&set(sink_dict.keys())}
    # 不相同
    sink_result_dict = {key: "源值:"+ str(source_dict.get(key,0)) +" <---> 目標(biāo)值:"+ str(sink_dict.get(key,0)) for key in set(source_dict.keys())^set(sink_dict.keys())}
    result_idct = {"result": {"sucess": source_result_dict,"fail": sink_result_dict}}
    return result_idct

3.2 執(zhí)行的效果:
image.png
四、dict中同一個key缺失list-value中的哪些值

4.1 定義函數(shù):

# dict中同一個key缺失list-value中的哪些值
def print_dict_result2(source_dict, sink_dict):
    result_idct = {}
    # 不存在
    for i in source_dict.keys():
        for j in sink_dict.keys():
            if i==j:
                result_idct[i] = [x for x in source_dict[i] if x not in sink_dict[j]]
    result_list = {"key": [key for key in set(source_dict.keys())^set(sink_dict.keys())]}
    result_dict = {"gen2 -> result":{"sink端同一個key缺失的value": result_idct,"sink端缺少的key": result_list}}
    return result_dict

4.2 執(zhí)行結(jié)果:
image.png

??到此,我們的案例已完全執(zhí)行,快復(fù)制粘貼吧,哈哈哈。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容