自動化辦公案例
需求一:

#讀取目標文本文件 def get_str(path): f = open(path,encoding="utf-8") data = f.read() f.close() return data import re #正則獲取文本號碼 def get_phone_number(str): res = re.findall(r'(13\d{9}|14[5|7]\d{8}|15\d{9}|166{\d{8}|17[3|6|7]{\d{8}|18\d{9})', str) return res #保存得到號碼 def save_res(res,save_path): save_file = open(save_path, 'w') for phone in res: save_file.write(phone) save_file.write('\n') save_file.write('\n號碼共計:'+str(len(res))) save_file.close() print('號碼讀取OK,號碼共計:'+str(len(res))) # 調用代碼 path=input("請輸入文件路徑:") save_path=input("請輸入文件保存路徑:") #read_str=get_str(path) res=get_phone_number(get_str(path)) save_res(res,save_path)
import xlwt #讀取目標文本文件 def get_str(path): f = open(path,encoding="utf-8") data = f.read() f.close() return data #保存為Excel文件 def save_excel(save_path,sheetname,column_name_list,read_list): workbook = xlwt.Workbook() sheet1 = workbook.add_sheet(sheetname=sheetname) for i in range(0,len(column_name_list)): sheet1.write(0,i,column_name_list[i]) i=1 for v in read_list: kval=v.split(':') for j in range(0,len(kval)): sheet1.write(i+1,j,kval[j]) i=i+1 workbook.save(save_path) print('信息保存 OK,記錄條數共計:'+str(len(read_list))) # 調用代碼 path=input("請輸入文件路徑:") save_path=input("請輸入文件保存路徑:") sheet_name=input("請輸入sheetname:") column_name=input("請輸入列名,並且使用英文逗號隔開:") column_name_list=column_name.split(',') read_str=get_str(path) read_list=read_str.split('\n') save_excel(save_path,sheet_name,column_name_list,read_list)
import re #正則獲取目標信息 def get_re_str(str): res = re.findall(r'^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', str) return res #讀取目標文本文件 def get_str(path): f = open(path,encoding="utf-8") data = f.read() f.close() return data #保存得到的信息 def save_res(res,save_path): save_file = open(save_path, 'w') for phone in res: save_file.write(phone) save_file.write('\n') save_file.close() print('信息讀取OK,信息共計:'+str(len(res))) path=input("請輸入文件路徑:") save_path=input("請輸入文件保存路徑:") #read_str=get_str(path) res=get_re_str(get_str(path)) save_res(res,save_path)
#安裝好 opencv 庫 import cv2 import os path=input("請輸入需要加水印的文件夾路徑:") file_list = os.listdir(path) for filename in file_list: img1 = cv2.imread(path+filename,cv2.IMREAD_COLOR) cv2.putText(img1,'CSDN',(10,10) , 1, 1, (255,255,255),1) #圖片,文字,位置,字體,字號,顏色,厚度 cv2.imwrite(path+filename, img1)
#如何去刪除重復文件呢?沒錯,是使用文件的 md5 值進行對照,相同文件的 #md5 值一樣,只需要遍歷該目錄的文件 md5 值,若出現重復 md5 則刪除#該文件即可 import hashlib,os def getMD5(filepath): f = open(filepath,'rb') md5obj = hashlib.md5() md5obj.update(f.read()) hash = md5obj.hexdigest() f.close() return str(hash).upper() path=input("請輸入需要重復文件過濾文件夾路徑:") file_list = os.listdir(path) file_md5=[] for filename in file_list: md5val=getMD5(path+filename) if md5val in file_md5: os.remove(path+filename) else: file_md5.append(md5val) print("處理完畢...")
#讀取目標文本文件 def get_str(path): f = open(path) data = f.read() f.close() return data path=input("請輸入文件路徑:") word=re.findall('([\u4e00-\u9fa5])',get_str(path)) print("中文字符,除特殊字符外共:",len(word))
import qrcode qr = qrcode.QRCode( version=2,#尺寸 error_correction=qrcode.constants.ERROR_CORRECT_L,#容錯信息當前為 7% 容錯 box_size=10,#每個格子的像素大小 border=1#邊框格子寬度 )#設置二維碼的大小 qr.add_data("https://www.csdn.net/")#指定 url img = qr.make_image()#生成二維碼圖片 img.save("F:\work\day7\csdn.png")#保存
import imageio image_list = [r'F:\work\day4\1.png', r'F:\work\day4\2.png'] gif_name = r'F:\work\day4\gif.gif' frames = [] for image_name in image_list: frames.append(imageio.imread(image_name)) #gif_name 保存路徑信息、frames 圖片信息、‘GIF’ 生成圖片類型以及 gif #圖的切換秒數 duration 參數為 2 imageio.mimsave(gif_name, frames, 'GIF', duration=2)
from translate import Translator translator = Translator(to_lang="Chinese") def get_str(path): f = open(path) data = f.read() f.close() return data path=input("請輸入文件路徑:") text=get_str(path) translation = translator.translate(text) print(translation)
#對視頻進行操作可以使用 moviepy 庫 from moviepy.editor import AudioFileClip #隨后使用 AudioFileClip 獲取視頻信息 my_audio_clip = AudioFileClip("E:\PyVedio\py02.mp4") #視頻的音頻寫入到文件 my_audio_clip.write_audiofile("E:\PyVedio\py02.wav")
需求二:
多個Excel合並

1.合並指定目錄下的所有訂單表;
import pandas as pd from pathlib import Path files = Path("orders/orders1").glob("*.xlsx") dfs = [pd.read_excel(f) for f in files] df = pd.concat(dfs) df.to_excel("result2.xlsx",index = False)
2.合並指定目錄下的指定訂單表;
dfs = [pd.read_excel(f) for f in ('orders/orders1/order1.xlsx','orders/orders1/order2.xlsx')] df = pd.concat(dfs) df.to_excel("result3.xlsx",index = False)
3.合並指定目錄下的指定訂單表的指定字段;
table1 = pd.read_excel("orders/orders1/order1.xlsx") table2 = pd.read_excel('orders/orders1/order2.xlsx') part1 = table1.iloc[:,2] #取order1.xlsx第3列的所有行 part2 = table2.iloc[:,[8,9]] #取order2.xlsx的第9、10列的所有行 result4 = pd.concat([part1,part2],axis = 1 ) #合並
4.合並所有目錄下的所有訂單表。
import pandas as pd import os file_list = os.walk("./") result = [] for dir_path,dirs,files in file_list: for f in files: file_path = os.path.join(dir_path,f) #重構文件路徑 print(file_path) if 'xlsx' in f: #只要xlsx文件 df = pd.read_excel(file_path) #將Excel轉成DataFrame result.append(df) print(result) df = pd.concat(result) #多個DataFrame合成一個 df.to_excel("result4.xlsx",index=False) #導入到一個新的Excel中
需求三:
在一個局域網內,共享一個文件夾里內容
IP地址:192.168.0.111 共享文件夾:file

實現:
#python一鍵共享 PS D:\file> python -m http.server 9090
#通過http直接訪問
瀏覽器打開 http://192.168.0.111:9090
