2 Python自動化辦公"案例"


自動化辦公案例

需求一:

 

#讀取目標文本文件
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)
1 提取電話號碼
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)
2 將電話號碼,存儲至Excel
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)
3 郵箱提取
#安裝好 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)
4 圖片加上logo水印
#如何去刪除重復文件呢?沒錯,是使用文件的 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("處理完畢...")
5 MD5清理重復文件
#讀取目標文本文件
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))
6 統計中文字符
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")#保存
7 生成二維碼
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)
8 制作git圖片
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)
9 翻譯一份英文文檔
#對視頻進行操作可以使用 moviepy 庫
from moviepy.editor import AudioFileClip

#隨后使用 AudioFileClip 獲取視頻信息
my_audio_clip = AudioFileClip("E:\PyVedio\py02.mp4")

#視頻的音頻寫入到文件
my_audio_clip.write_audiofile("E:\PyVedio\py02.wav")
10 視頻中提取音頻

 

需求二:

多個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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM