日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > python如何實(shí)現(xiàn)日常工作自動(dòng)化?

python如何實(shí)現(xiàn)日常工作自動(dòng)化?

2020-07-24 14:49:01 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

大多數(shù)作業(yè)具有可以自動(dòng)執(zhí)行的重復(fù)性任務(wù),從而節(jié)省了一些寶貴的時(shí)間。這使自動(dòng)化成為一項(xiàng)關(guān)鍵技能。一小撮熟練的自動(dòng)化工程師和領(lǐng)域?qū)<乙苍S可以自動(dòng)化整個(gè)團(tuán)隊(duì)中許多最繁瑣的任務(wù)。那么python如何實(shí)現(xiàn)日常工作自動(dòng)化?在本文中,我們將探討使用Python(一種功能強(qiáng)大且易于學(xué)習(xí)的編程語言)的工作流自動(dòng)化的基礎(chǔ)。我們將使用Python編寫一個(gè)簡單而有用的自動(dòng)化小腳本,該腳本將清理給定的文件夾并將每個(gè)文件放入相應(yīng)的文件夾中。

我們的目標(biāo)不是在一開始就編寫完美的代碼或創(chuàng)建理想的體系結(jié)構(gòu)。我們也不會(huì)建立任何“非法”的東西。相反,我們將研究如何創(chuàng)建一個(gè)腳本,該腳本會(huì)自動(dòng)清理給定的文件夾及其所有文件。

  一、自動(dòng)化領(lǐng)域和起點(diǎn)

自動(dòng)化技術(shù)適用于大多數(shù)領(lǐng)域。對于初學(xué)者來說,它有助于完成諸如從一堆文檔中提取電子郵件地址之類的任務(wù),以便您可以進(jìn)行電子郵件爆炸。或更復(fù)雜的方法,例如優(yōu)化大型公司內(nèi)部的工作流程和流程。

當(dāng)然,從小型的個(gè)人腳本到替代實(shí)際人員的大型自動(dòng)化基礎(chǔ)架構(gòu)涉及學(xué)習(xí)和改進(jìn)的過程。因此,讓我們看看您可以從何處開始旅程。

  簡單自動(dòng)化

簡單的自動(dòng)化實(shí)現(xiàn)了快速直接的切入點(diǎn)。這可以涵蓋小的獨(dú)立過程,例如項(xiàng)目清理和目錄內(nèi)文件的重組,也可以包括工作流的某些部分,例如自動(dòng)調(diào)整已保存文件的大小。

  公共API自動(dòng)化

公共API自動(dòng)化是最常見的自動(dòng)化形式,因?yàn)槿缃裎覀兛梢允褂脤PI的HTTP請求來訪問大多數(shù)功能。例如,如果您想在家中自動(dòng)為自制的智能花園澆水。

為此,您想檢查當(dāng)天的天氣,看看是否需要澆水或是否有雨來。

API逆向工程

在實(shí)際的漫游器中,基于API逆向工程的自動(dòng)化更為常見,在下面的“道德注意事項(xiàng)”部分中,該圖表的“ Bot Imposter”部分中也是如此。

通過對API進(jìn)行反向工程,我們可以了解應(yīng)用程序的用戶流程。一個(gè)例子是登錄在線瀏覽器游戲。

通過了解登錄和身份驗(yàn)證過程,我們可以使用自己的腳本來復(fù)制該行為。然后,即使他們自己不提供應(yīng)用程序,我們也可以創(chuàng)建自己的接口來使用該應(yīng)用程序。

無論您要采用哪種方法,請始終考慮它是否合法。

您不想惹麻煩,對嗎?

  二、道德考量

GitHub上的某個(gè)人曾經(jīng)與我聯(lián)系并告訴我:

“喜歡和參與是數(shù)字貨幣,您正在貶值它們。”

這讓我感到困惑,并讓我質(zhì)疑我為此目的而構(gòu)建的工具。

這些互動(dòng)和參與可以自動(dòng)化并“偽造”的事實(shí)越來越多,這導(dǎo)致了社交媒體系統(tǒng)的扭曲和破壞。

如果人們不使用漫游器和其他互動(dòng)系統(tǒng),那么產(chǎn)生有價(jià)值和優(yōu)質(zhì)內(nèi)容的人將對其他用戶和廣告公司不可見。

我的一個(gè)朋友想出了以下但丁與但丁的“地獄九圈”的聯(lián)系,在每一步中,隨著成為社會(huì)影響者的步伐越來越近,您將越來越不了解整個(gè)系統(tǒng)的實(shí)際破壞力。

我想在這里與您分享這件事,因?yàn)槲艺J(rèn)為這是我與InstaPy積極與網(wǎng)紅合作時(shí)親眼所見的非常準(zhǔn)確的代表。

等級(jí)1:凌波-如果您;

等級(jí)2:調(diào)情 -當(dāng)您手動(dòng)喜歡并關(guān)注盡可能多的人時(shí),請他們跟著您回去/喜歡您的帖子;

等級(jí)3:陰謀 -當(dāng)您加入電報(bào)組喜歡和評(píng)論10張照片,因此接下來的10個(gè)人將喜歡和評(píng)論您的照片;

等級(jí)4:不忠 -當(dāng)您使用低成本的虛擬助手代表您喜歡和關(guān)注時(shí);

等級(jí)5:欲望-當(dāng)您使用機(jī)器人給予喜歡,但沒有得到任何回報(bào)(但您不為此付費(fèi)(例如,Chrome擴(kuò)展程序));

級(jí)別6:濫交-當(dāng)您使用機(jī)器人給予50多個(gè)喜歡得到50多個(gè)喜歡的人,但您無需為此付費(fèi)-例如,Chrome擴(kuò)展程序;

等級(jí)7:貪婪或極端貪婪 -當(dāng)您使用漫游器在200-700張照片之間點(diǎn)贊/關(guān)注/評(píng)論時(shí),忽略了被禁止的機(jī)會(huì);

等級(jí)8:賣淫 -當(dāng)您支付未知的第三者服務(wù)進(jìn)行自動(dòng)對等時(shí)喜歡/關(guān)注您,但他們使用您的帳戶喜歡/關(guān)注;

第9級(jí):欺詐/異端 -當(dāng)您購買關(guān)注者和喜歡并嘗試將自己賣給有影響力的品牌時(shí)。

社交媒體上的惡意攻擊程度如此之高,以至于如果您不進(jìn)行機(jī)器人操作,那么您將被困在Limbo 1級(jí),相對于同齡人而言,追隨者的成長率和參與度都不高。

在經(jīng)濟(jì)學(xué)理論上,這被稱為囚徒困境和零和博弈。如果我不機(jī)器人,而你又機(jī)器人,你贏了。如果您不是機(jī)器人,而我是機(jī)器人,我會(huì)贏。如果沒有機(jī)器人,那么所有人都會(huì)贏。但是,由于沒有人人都不要機(jī)器人,所以沒有人能贏。

注:永遠(yuǎn)不要忘記整個(gè)工具對社交媒體的影響。

我們希望避免處理道德問題,而仍在此處從事自動(dòng)化項(xiàng)目。這就是為什么我們將創(chuàng)建一個(gè)簡單的目錄清理腳本來幫助您整理凌亂文件夾的原因。

  三、創(chuàng)建目錄清理腳本

現(xiàn)在,我們要看一個(gè)非常簡單的腳本。通過基于文件擴(kuò)展名將這些文件移動(dòng)到相應(yīng)的文件夾中,它會(huì)自動(dòng)清理給定目錄。

因此,我們要做的就是:

  1.設(shè)置參數(shù)解析器

由于我們正在使用操作系統(tǒng)功能(如移動(dòng)文件),因此需要導(dǎo)入os庫。除此之外,我們還希望使用戶可以控制要清理的文件夾。我們將argparse為此使用庫。

import os

import argparse

導(dǎo)入兩個(gè)庫之后,我們首先設(shè)置參數(shù)解析器。確保為每個(gè)添加的參數(shù)提供描述和幫助文本,以在用戶鍵入內(nèi)容時(shí)為用戶提供有價(jià)值的幫助--help。

我們的論點(diǎn)將命名為--path。名稱前面的雙破折號(hào)告訴庫這是一個(gè)可選參數(shù)。默認(rèn)情況下,我們要使用當(dāng)前目錄,因此將默認(rèn)值設(shè)置為"."。

parser = argparse.ArgumentParser(

description="Clean up directory and put files into according folders."

)

parser.add_argument(

"--path",

type=str,

default=".",

help="Directory path of the to be cleaned directory",

)

# parse the arguments given by the user and extract the path

args = parser.parse_args()

path = args.path

print(f"Cleaning up directory {path}")

這樣就完成了參數(shù)解析部分–它非常簡單易讀,對吧?

讓我們執(zhí)行腳本并檢查錯(cuò)誤。

python directory_clean.py --path ./test

=> Cleaning up directory ./test

執(zhí)行后,我們可以看到目錄名稱已完美打印到控制臺(tái)。

現(xiàn)在讓我們使用該os庫來獲取給定路徑的文件。

  2. 從文件夾中獲取文件列表

通過使用該os.listdir(path)方法并為其提供有效路徑,我們獲得了該目錄內(nèi)所有文件和文件夾的列表。

在列出文件夾中的所有元素之后,我們不想在文件夾和文件夾之間進(jìn)行區(qū)分,因?yàn)槲覀儾幌肭謇砦募A,而只清理文件。

在這種情況下,我們使用Python列表推導(dǎo)來遍歷所有元素,如果它們滿足作為文件或文件夾的給定要求,則將它們放到新列表中。

# get all files from given directory

dir_content = os.listdir(path)

# create a relative path from the path to the file and the document name

path_dir_content = [os.path.join(path, doc) for doc in dir_content]

# filter our directory content into a documents and folders list

docs = [doc for doc in path_dir_content if os.path.isfile(doc)]

folders = [folder for folder in path_dir_content if os.path.isdir(folder)]

# counter to keep track of amount of moved files

# and list of already created folders to avoid multiple creations

moved = 0

created_folders = []

print(f"Cleaning up {len(docs)} of {len(dir_content)} elements.")

與往常一樣,讓我們確保我們的用戶得到反饋。因此,添加一條打印語句,以向用戶指示要移動(dòng)多少文件。

python directory_clean.py --path ./test

=> Cleaning up directory ./test

=> Cleaning up 60 of 60 elements.

重新執(zhí)行python腳本后,我們現(xiàn)在可以看到/test我創(chuàng)建的文件夾包含60個(gè)將被移動(dòng)的文件。

  3.為每個(gè)文件擴(kuò)展名創(chuàng)建一個(gè)文件夾

現(xiàn)在,下一步也是更重要的一步是為每個(gè)文件擴(kuò)展名創(chuàng)建文件夾。為此,我們要瀏覽所有過濾的文件,如果它們的擴(kuò)展名沒有文件夾,請創(chuàng)建一個(gè)。

該os庫可為我們提供更好的功能,例如拆分給定文檔的文件類型和路徑,提取路徑本身和文檔名稱。

# go through all files and move them into according folders

for doc in docs:

# separte name from file extension

full_doc_path, filetype = os.path.splitext(doc)

doc_path = os.path.dirname(full_doc_path)

doc_name = os.path.basename(full_doc_path)

print(filetype)

print(full_doc_path)

print(doc_path)

print(doc_name)

break

上面代碼末尾的break語句可確保如果目錄中包含數(shù)十個(gè)文件,我們的終端也不會(huì)被發(fā)送垃圾郵件。

設(shè)置好之后,讓我們執(zhí)行腳本以查看類似于以下內(nèi)容的輸出:

python directory_clean.py --path ./test

=> ...

=> .pdf

=> ./test/test17

=> ./test

=> test17

現(xiàn)在我們可以看到上面的實(shí)現(xiàn)分離了文件類型,然后從完整路徑中提取了部分。

由于我們現(xiàn)在具有文件類型,因此我們可以檢查是否存在具有該類型名稱的文件夾。

在此之前,我們要確保跳過一些文件。如果我們使用當(dāng)前目錄"."作為路徑,則需要避免移動(dòng)python腳本本身。一個(gè)簡單的if條件可以解決這個(gè)問題。

除此之外,我們不想移動(dòng)“ 隱藏文件”,因此我們也包括所有以點(diǎn)開頭的文件。.DS_StoremacOS上的文件是隱藏文件的示例。

# skip this file when it is in the directory

if doc_name == "directory_clean" or doc_name.startswith('.'):

continue

# get the subfolder name and create folder if not exist

subfolder_path = os.path.join(path, filetype[1:].lower())

if subfolder_path not in folders:

# create the folder

處理完python腳本和隱藏文件后,我們現(xiàn)在可以繼續(xù)在系統(tǒng)上創(chuàng)建文件夾。

除了檢查之外,如果在讀取目錄內(nèi)容時(shí)文件夾已經(jīng)存在,那么一開始,我們需要一種跟蹤已創(chuàng)建文件夾的方法。這就是我們宣布該created_folders = []名單的原因。它將用作跟蹤文件夾名稱的存儲(chǔ)器。

要?jiǎng)?chuàng)建一個(gè)新文件夾,該os庫提供了一個(gè)名為的方法,該方法os.mkdir(folder_path)采用一個(gè)路徑并在那里創(chuàng)建一個(gè)具有給定名稱的文件夾。

此方法可能會(huì)引發(fā)異常,告訴我們該文件夾已存在。因此,我們還要確保捕獲該錯(cuò)誤。

if subfolder_path not in folders and subfolder_path not in created_folders:

try:

os.mkdir(subfolder_path)

created_folders.append(subfolder_path)

print(f"Folder {subfolder_path} created.")

except FileExistsError as err:

print(f"Folder already exists at {subfolder_path}... {err}")

設(shè)置文件夾創(chuàng)建后,讓我們重新執(zhí)行腳本。

python directory_clean.py --path ./test

=> ...

=> Folder ./test/pdf created.

在第一次執(zhí)行時(shí),我們可以看到一個(gè)日志列表,告訴我們已經(jīng)創(chuàng)建了具有給定類型的文件擴(kuò)展名的文件夾。

4.將每個(gè)文件移到右子文件夾中

現(xiàn)在的最后一步是將文件實(shí)際移到其新的父文件夾中。

使用os操作時(shí)要了解的重要一點(diǎn)是,有時(shí)無法撤消操作。例如,這就是刪除的情況。因此,首先僅注銷執(zhí)行腳本將實(shí)現(xiàn)的行為是有意義的。

這就是為什么該os.rename(...)方法在這里被評(píng)論的原因。

# get the new folder path and move the file

new_doc_path = os.path.join(subfolder_path, doc_name) + filetype

# os.rename(doc, new_doc_path)

moved += 1

print(f"Moved file {doc} to {new_doc_path}")

執(zhí)行完腳本并查看正確的日志記錄之后,我們現(xiàn)在可以在os.rename()方法前刪除注釋哈希,并最終進(jìn)行注釋。

# get the new folder path and move the file

new_doc_path = os.path.join(subfolder_path, doc_name) + filetype

os.rename(doc, new_doc_path)

moved += 1

print(f"Moved file {doc} to {new_doc_path}")

print(f"Renamed {moved} of {len(docs)} files.")

python directory_clean.py --path ./test

=> ...

=> Moved file ./test/test17.pdf to ./test/pdf/test17.pdf

=> ...

=> Renamed 60 of 60 files.

現(xiàn)在,此最終執(zhí)行會(huì)將所有文件移動(dòng)到它們相應(yīng)的文件夾中,并且無需手動(dòng)操作即可很好地清理我們的目錄。

在下一步中,我們現(xiàn)在可以使用上面創(chuàng)建的腳本,例如,安排它在每個(gè)星期一執(zhí)行,以清理我們的Downloads文件夾以獲得更多結(jié)構(gòu)。

以上即是關(guān)于python如何實(shí)現(xiàn)日常工作自動(dòng)化的全部內(nèi)容,想了解更多關(guān)于python的信息,請繼續(xù)關(guān)注中培偉業(yè)吧。

標(biāo)簽: Python 工作自動(dòng)化
主站蜘蛛池模板: 狠狠操五月天 | 亚洲精品乱码久久久久久日本蜜臀 | 国产精品91久久 | 亚洲精品一区二区二区 | 年轻的母亲理论片 | 中文字幕在线播放一区 | 中文字幕乱码高清免费网站 | 久久米奇亚洲 | 亚洲AV永久无码精品天堂动漫 | 中文字幕中文字幕在线 | 污污的网站在线免费观看 | 成人在线国产视频 | 中国产公妇仑在线观看 | 国产精品无码无片在线观看 | 无码人妻精品一区二区三 | 嫩草研究院在线 | 女人内谢免费看片 | 国产A级毛片色咪味 | 97人妻人人揉人人躁人人 | 黄大片日本一级在线a | 强行扒开双腿疯狂猛躁3p视频 | 黄色在线观看免费视频 | 国内精品国产三级国产在线专 | 精品国产一区二区三区国产区 | 国产精品久久久久久免费 | 挺进长腿秘书的臀缝耸动小说 | 精品国产自在精品国产浪潮 | 亚洲私人影院 | 奇迹少女5季免费正版 | 午夜寂寞支持安卓精品 | 91久久免费 | 亚洲第一狼人伊人AV | 成人区人妻精品一区二区三区 | 欧美日韩激情在线一区二区三区 | www亚洲人 | 少妇粉嫩小泬白浆流出 | 亚欧美日韩香蕉在线播放视频 | 精品久久久噜噜噜久久 | 男人的天堂av社区在线 | 久久天天躁狠狠躁夜夜AV浪潮 | 成年美女黄网站色视频免费 |