精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

十個超級Python腳本,生活辦公更高效

開發 前端
電子郵件頭承載著揭示郵件來源、傳輸路徑和內容的重要元數據。雖然這些信息默認對收件人隱藏,但可以通過郵件客戶端或特定工具查看。

在這個快節奏、高效率的時代,掌握時間管理和信息整理的藝術尤為重要。今天分享一系列Python自動化腳本,幫助提升工作效率和信息處理能力。從時間管理到數據整理,從內容創作到郵件分析,這些腳本覆蓋了日常工作和生活中的多個方面,助你以更智能、更高效的方式完成任務。

1.番茄鐘(Pomodura)

番茄工作法是提高生產力的最簡單方法之一。將工作時間劃分為25分鐘的工作段,每段之間用5分鐘的短暫休息來分隔。

這個Python自動化腳本進一步強化了番茄工作法,在計時器結束時會自動鎖定你的設備,確保你的休息時間。

import tkinter as tk
import time
import ctypes
import os
from threading import Timer

class PomodoroTimer:
    def __init__(self, root):
        self.root = root
        self.root.title("Pomodoro Timer")
        self.root.geometry("300x200")
        self.time_var = tk.StringVar()
        self.time_var.set("25:00")
        self.running = False
        self.paused = False
        self.remaining_time = 25 * 60  # 25 minutes
        
        self.label = tk.Label(root, textvariable=self.time_var, font=("Helvetica", 48))
        self.label.pack(pady=20)
        
        self.start_button = tk.Button(root, text="Start", command=self.start_timer)
        self.start_button.pack(side=tk.LEFT, padx=10)
        
        self.pause_button = tk.Button(root, text="Pause", command=self.pause_timer)
        self.pause_button.pack(side=tk.LEFT, padx=10)
        
        self.reset_button = tk.Button(root, text="Reset", command=self.reset_timer)
        self.reset_button.pack(side=tk.LEFT, padx=10)
    
    def update_time(self):
        if self.running:
            minutes, seconds = divmod(self.remaining_time, 60)
            self.time_var.set(f"{minutes:02}:{seconds:02}")
            if self.remaining_time > 0:
                self.remaining_time -= 1
                self.root.after(1000, self.update_time)
            else:
                self.running = False
                self.lock_screen()
    
    def start_timer(self):
        if not self.running:
            self.running = True
            self.paused = False
            self.update_time()
    
    def pause_timer(self):
        if self.running:
            self.running = False
            self.paused = True
    
    def reset_timer(self):
        self.running = False
        self.paused = False
        self.remaining_time = 25 * 60
        self.time_var.set("25:00")
    
    def lock_screen(self):
        if os.name == 'nt':  # Windows
            ctypes.windll.user32.LockWorkStation()
        elif os.name == 'posix':  # macOS and Linux
            # 這是一個占位符,因為在macOS/Linux上鎖定屏幕通常需要不同的處理
            # 對于macOS,使用:os.system('/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend')
            # 對于Linux,使用:os.system('gnome-screensaver-command --lock')
            print("Locking screen on macOS/Linux is not implemented in this script.")
    
if __name__ == "__main__":
    root = tk.Tk()
    app = PomodoroTimer(root)
    root.mainloop()

2 今日視野(TodayScope)

這個自動化腳本能夠自動為你匯總當天的頭條新聞、歷史事件和星座運勢,一并呈現,一目了然。

import tkinter as tk
from tkinter import ttk
import requests
from bs4 import BeautifulSoup

def get_trending_news():
    """Fetch and return trending news headlines."""
    url = "http://newsapi.org/v2/top-headlines?country=us&apiKey=CREATE_YOUR_OWN"
    page = requests.get(url).json() 
    articles = page["articles"]
    results = [ar["title"] for ar in articles[:10]]
    headlines = "\n".join(f"{i + 1}. {title}" for i, title in enumerate(results))
    return headlines

def get_horoscope(sign_name):
    """Fetch and return horoscope for the specified sign."""
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    signs = {
        'aries':1, 'taurus':2, 'gemini':3, 'cancer':4,
        'leo':5, 'virgo':6, 'libra':7, 'scorpio':8,
        'sagittarius':9, 'capricorn':10, 'aquarius':11, 'pisces':12
    }
    sign_id = signs.get(sign_name.lower())
    if sign_id is None:
        return "Sign not found."
    
    url = f'https://www.horoscope.com/us/horoscopes/general/horoscope-general-daily-today.aspx?sign={sign_id}'
    res = requests.get(url, headers=headers)
    soup = BeautifulSoup(res.text, 'html.parser')
    try:
        horoscope_text = soup.select('.main-horoscope p')[0].getText().strip().capitalize()
        sign = soup.select('h1')[0].getText().strip().capitalize()
        return f"{sign} Horoscope: {horoscope_text}"
    except:
        return "Could not fetch the horoscope."

def get_history_today():
    """Fetch and return historical events that happened on this day."""
    url = 'https://www.onthisday.com/'
    res = requests.get(url)
    soup = BeautifulSoup(res.text, 'html.parser')
    history_list = soup.select('.event')[:5]  # 限制為5個事件
    
    events = [event.getText().strip() for event in history_list]
    history_text = "\n".join(events)
    return history_text

def show_popup():
    # 從每個函數獲取信息
    news = get_trending_news()
    horoscope = get_horoscope('aries')  # 將'aries'替換為所需星座
    history = get_history_today()
    
    # 創建主Tkinter窗口
    root = tk.Tk()
    from datetime import datetime
    # 獲取當前日期以顯示在GUI上
    current_date = datetime.now()
    formatted_date = current_date.strftime("%d %b %Y")
    
    root.title(f"Daily Update: {formatted_date}")
    root.geometry("500x600")
    root.configure(bg="#f0f0f5")  # 設置背景顏色

    # 設置帶滾動條的畫布
    canvas = tk.Canvas(root, bg="#f0f0f5")
    scrollbar = ttk.Scrollbar(root, orient="vertical", command=canvas.yview)
    scrollable_frame = tk.Frame(canvas, bg="#f0f0f5")
    
    scrollable_frame.bind(
        "<Configure>",
        lambda e: canvas.configure(scrollregion=canvas.bbox("all")))

    canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
    canvas.configure(yscrollcommand=scrollbar.set)
    
    # 定義畫布、滾動條和顏色
    canvas.pack(side="left", fill="both", expand=True)
    scrollbar.pack(side="right", fill="y")
    header_font = ("Arial", 14, "bold")
    text_font = ("Arial", 12)
    colors_list = ["#E4E0E1","#FFDDC1", "#D4E157", "#81D4FA", "#FFAB91", "#A5D6A7", "#FFF59D", "#CE93D8", "#B39DDB", "#90CAF9", "#FFE082", "#FFCCBC", "#AED581", "#FFE0B2", "#80CBC4", "#F48FB1"]
    section_bg = random.choice(colors_list) 

    # 創建一個部分的函數
    def create_section(parent, title, content, color):
        frame = tk.Frame(parent, bg=color, pady=10, padx=10)
        frame.pack(fill="x", pady=5, padx=5)
        title_label = tk.Label(frame, text=title, font=header_font, bg=color, fg="#333333")
        title_label.pack(anchor="w", pady=(0, 5))
        content_label = tk.Label(frame, text=content, justify="left", wraplength=450, bg=color, fg="#000000")
        content_label.pack(anchor="w")
        return frame

    # 添加熱門新聞部分
    create_section(scrollable_frame, "Trending News", news, section_bg)
    # 添加星座運勢部分
    create_section(scrollable_frame, "Horoscope", horoscope, section_bg)
    # 添加歷史事件部分
    create_section(scrollable_frame, "On This Day", history, section_bg)
   
    # 在底部添加關閉按鈕
    close_button = ttk.Button(scrollable_frame, text="Close", command=root.destroy)
    close_button.pack(pady=20)
    root.mainloop()

# 運行腳本并在啟動時顯示彈出窗口
if __name__ == "__main__":
    show_popup()

3.潮流股票(TrendyStocks)

股市里,公眾關注度往往與股價波動息息相關。這個自動化腳本能追蹤股票的流行趨勢,幫你捕捉市場熱點,從而做出更精準的投資選擇。它能夠幫助你快速了解哪些股票正受到市場關注,哪些則不然,是投資研究的得力助手。

#!pip install pytrends
from pytrends.request import TrendReq
import matplotlib.pyplot as plt

# 函數:獲取趨勢數據
def get_google_trends_data(keywords, timeframe='today 3-m', geo='US'):
    pytrends = TrendReq(hl='en-US', tz=360)

    # 構建請求數據
    pytrends.build_payload(keywords, cat=0, timeframe=timeframe, geo=geo, gprop='')

    # 獲取隨時間變化的興趣度數據
    interest_over_time_df = pytrends.interest_over_time()

    return interest_over_time_df

# 示例關鍵詞,與你的文章相關
STOCKS = ["AMZN", "MSFT", "NVDA", "AAPL", "GOOG"]

# 獲取趨勢數據
trends_data = get_google_trends_data(STOCKS)

# 繪制數據圖表
plt.figure(figsize=(20, 12))
trends_data.plot(title='Google Trends for STOCKS')
plt.xlabel('Date')
plt.ylabel('Interest Over Time')
plt.show()

4.整潔化(Neatify)

你是否有面對雜亂無章的下載文件夾感到頭疼的時候?是否有急需文件卻找不到的時候?并且嘗試整理卻總是失敗。

這個自動化腳本幾分鐘內幫你解決文件管理難題。只需指定路徑,就會自動:

  • 分類整理:按文件擴展名自動分類存放。
  • 去除重復:通過哈希值檢測,刪除重復文件。
  • 時間排序:根據文件日期自動歸檔,方便查找。
import os
import shutil
import hashlib
from datetime import datetime

def get_file_hash(file_path):
    """Calculate the SHA-256 hash of a file."""
    with open(file_path, 'rb') as f:
        return hashlib.sha256(f.read()).hexdigest()

def organize_by_date_and_extension(folder_path):
    """Organize files by date, then by extension, and handle duplicates."""
    # 在根目錄創建“Duplicates”文件夾
    duplicates_folder = os.path.join(folder_path, '_Duplicates')
    os.makedirs(duplicates_folder, exist_ok=True)

    # 字典,用于存儲文件哈希值以檢測重復文件
    file_hashes = {}

    # 遍歷目錄中的所有文件
    all_files = [os.path.join(folder_path, f) for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]

    for file_path in all_files:
        # 獲取文件的修改日期
        modification_time = os.path.getmtime(file_path)
        modification_date = datetime.fromtimestamp(modification_time).strftime('%Y-%m-%d')

        # 如不存在,則創建修改日期對應的文件夾
        date_folder = os.path.join(folder_path, modification_date)
        os.makedirs(date_folder, exist_ok=True)

        # 計算文件哈希值
        file_hash = get_file_hash(file_path)

        # 檢測重復文件
        if file_hash in file_hashes:
            # 文件是重復的,移動到“Duplicates”文件夾
            shutil.move(file_path, os.path.join(duplicates_folder, os.path.basename(file_path)))
            print(f"Moved duplicate file {os.path.basename(file_path)} to Duplicates folder.")
        else:
            # 存儲文件哈希值以避免將來的重復
            file_hashes[file_hash] = file_path

            # 將文件移動到日期文件夾
            new_path = os.path.join(date_folder, os.path.basename(file_path))
            shutil.move(file_path, new_path)

            # 在日期文件夾內按擴展名組織文件
            _, extension = os.path.splitext(new_path)
            extension = extension.lower()
            extension_folder = os.path.join(date_folder, extension[1:])  # 從擴展名中去除點
            os.makedirs(extension_folder, exist_ok=True)

            # 將文件移動到其擴展名對應的文件夾
            shutil.move(new_path, os.path.join(extension_folder, os.path.basename(new_path)))
            print(f"Moved {os.path.basename(new_path)} to {extension_folder}.")

    print("Files organized by date, extension, and duplicates handled successfully!")

if __name__ == "__main__":
    # 指定要組織整理的目錄
    folder_path = input("Enter the path to the folder to organize: ")
    organize_by_date_and_extension(folder_path)

5.時鐘工作(ClockWork)

時間追蹤是提升效率的關鍵,幫助我們發現工作模式、優化流程并保持專注。但手動記錄易出錯、打斷工作。這個自動化腳本簡化了流程,自動追蹤任務時間,實時監控并記錄日志,讓你專注于核心工作。

應用場景:

  • 時間追蹤器:提高工作效率。
  • 模型訓練追蹤器:優化研發流程。
import tkinter as tk
from tkinter import ttk, messagebox
import csv
import time
from datetime import datetime

class TaskTrackerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("ClockWork: Time Tracking Made Easy")
        self.task_name_var = tk.StringVar()
        self.probable_time_var = tk.IntVar()
        self.start_time = None

        #  UI元素配置
        self.setup_ui()

        # 如果日志文件不存在,則創建
        self.create_log_file()

    def setup_ui(self):
        style = ttk.Style()
        style.configure("TLabel", font=("Helvetica", 12))
        style.configure("TButton", font=("Helvetica", 12, 'bold'), padding=6)

        # UI元素
        ttk.Label(self.root, text="Task Name:", foreground="blue").grid(row=0, column=0, padx=10, pady=10)
        ttk.Entry(self.root, textvariable=self.task_name_var, width=30).grid(row=0, column=1, padx=10, pady=10)
        ttk.Label(self.root, text="Probable Time (minutes):", foreground="blue").grid(row=1, column=0, padx=10, pady=10)
        ttk.Entry(self.root, textvariable=self.probable_time_var, width=30).grid(row=1, column=1, padx=10, pady=10)

        ttk.Button(self.root, text="Start Task", command=self.start_task).grid(row=2, column=0, padx=10, pady=10)
        self.stop_button = ttk.Button(self.root, text="Stop Task", command=self.stop_task, state=tk.DISABLED)
        self.stop_button.grid(row=2, column=1, padx=10, pady=10)

        ttk.Button(self.root, text="Reset", command=self.reset_task).grid(row=3, column=0, padx=10, pady=10)
        ttk.Button(self.root, text="View Time Logs", command=self.view_time_logs).grid(row=3, column=1, padx=10, pady=10)

        self.timer_label = ttk.Label(self.root, text="00:00:00", font=("Helvetica", 18, 'bold'), foreground="green")
        self.timer_label.grid(row=4, column=0, columnspan=2, padx=10, pady=20)

    def create_log_file(self):
        with open("time_log.csv", "a", newline="") as file:
            writer = csv.writer(file)
            if file.tell() == 0:
                writer.writerow(['Task Name', 'Probable Time (minutes)', 'Start Time', 'End Time', 'Time Spent (minutes)', 'Time Difference (minutes)'])

    def start_task(self):
        task_name = self.task_name_var.get()
        if task_name:
            self.start_time = time.time()
            self.start_button.config(state=tk.DISABLED)
            self.stop_button.config(state=tk.NORMAL)
            self.update_timer()

    def stop_task(self):
        self.stop_button.config(state=tk.DISABLED)
        self.start_button.config(state=tk.NORMAL)
        time_spent = round((time.time() - self.start_time) / 60, 2)
        self.log_time(time_spent)

    def update_timer(self):
        if self.start_time:
            time_spent = time.time() - self.start_time
            time_str = time.strftime('%H:%M:%S', time.gmtime(time_spent))
            self.timer_label.config(text=time_str)
            self.root.after(1000, self.update_timer)

    def log_time(self, time_spent):
        end_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        time_diff = round(time_spent - self.probable_time_var.get(), 2)
        with open("time_log.csv", "a", newline="") as file:
            writer = csv.writer(file)
            writer.writerow([self.task_name_var.get(), self.probable_time_var.get(), self.start_time, end_time, time_spent, time_diff])

    def reset_task(self):
        self.task_name_var.set("")
        self.probable_time_var.set("")
        self.timer_label.config(text="00:00:00")
        self.start_button.config(state=tk.NORMAL)
        self.stop_button.config(state=tk.DISABLED)

    def view_time_logs(self):
        try:
            with open("time_log.csv", "r") as file:
                logs = list(csv.reader(file))
            if len(logs) > 1:
                log_window = tk.Toplevel(self.root)
                log_window.title("Time Logs")
                text_area = tk.Text(log_window, height=20, width=120)
                text_area.pack(padx=10, pady=10)
                for log in logs[1:]:
                    task_name, probable_time, start_time, end_time, time_spent, time_diff = log
                    color = "green" if float(time_diff) < 0 else "red"
                    text_area.insert(tk.END, f"Task: {task_name}, Probable: {probable_time} min, Time Spent: {time_spent} min, Diff: {time_diff} min\n", color)
                text_area.config(state=tk.DISABLED)
                text_area.tag_config("green", foreground="green")
                text_area.tag_config("red", foreground="red")
            else:
                messagebox.showinfo("No Logs", "No task logs found.")
        except Exception as e:
            messagebox.showerror("Error", f"Could not read time logs: {e}")

if __name__ == "__main__":
    root = tk.Tk()
    app = TaskTrackerApp(root)
    root.mainloop()

6.剪貼板翻譯(ClipTranslate)

你是否常因復制的文本太多而難以追蹤粘貼的內容,甚至不小心丟失了重要信息?是否在遇到外語文本時,總是不得不頻繁求助于翻譯工具?

現在,有了這個自動化腳本,你就能輕松管理剪貼板。它不僅能監控你復制的所有文本,還能自動將其翻譯成英文,讓工作更加高效。

import tkinter as tk
from tkinter import ttk
import pyperclip   # 需要安裝Pyperclip
from deep_translator import GoogleTranslator
from langdetect import detect

def detect_and_translate(text):
    try:
        # 檢測文本語言
        detected_language = detect(text)
        print(f"Detected language: {detected_language}")
        if detected_language != 'en':
            translated_text = GoogleTranslator(source=detected_language, target='en').translate(text)
            print(f"Translated text: {translated_text}")
            return translated_text
        else:
            print("The text is already in English.")
            return text
    except Exception as e:
        print(f"Error: {e}")
        return text

## 更新GUI,顯示新復制的文本
def update_listbox():
    new_item = pyperclip.paste()
    new_item = detect_and_translate(new_item)
    if new_item not in X:
        X.append(new_item)
        listbox.insert(tk.END, new_item)
        listbox.insert(tk.END, "----------------------")
    listbox.yview(tk.END)
    root.after(1000, update_listbox)

## 檢查復制的內容
def copy_to_clipboard(event):
    selected_item = listbox.get(listbox.curselection())
    if selected_item:
        pyperclip.copy(selected_item)

X = []
root = tk.Tk()
root.title("Clipboard Manager")
root.geometry("500x500")
root.configure(bg="#f0f0f0")
frame = tk.Frame(root, bg="#f0f0f0")
frame.pack(padx=10, pady=10)
label = tk.Label(frame, text="Clipboard Contents:", bg="#f0f0f0")
label.grid(row=0, column=0)
scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
listbox = tk.Listbox(root, width=150, height=150, yscrollcommand=scrollbar.set)
listbox.pack(pady=10)
scrollbar.config(command=listbox.yview)
update_listbox()
listbox.bind("<Double-Button-1>", copy_to_clipboard)
root.mainloop()

7.視頻轉GIF(Video2GIF)

對于內容創作者來說,GIF在內容表達上具有不可替代的作用。雖然視頻適合分享和展示,但在文章中嵌入GIF往往更為合適。這個自動化腳本能夠將視頻轉換成無水印的GIF,僅需幾行代碼即可完成。

from moviepy.editor import VideoFileClip

def convert_video_to_gif(video_path, gif_path, start_time=0, duration=None):
    # 加載視頻剪輯
    clip = VideoFileClip(video_path)
    
    # 如果指定了時長,則裁剪GIF的視頻片段;否則使用整個視頻
    if duration:
        clip = clip.subclip(start_time, start_time + duration)
    else:
        clip = clip.subclip(start_time, clip.duration)
    
    # 將裁剪的視頻片段寫為GIF
    clip.write_gif(gif_path)
    print(f"GIF saved to {gif_path}")

video_path = "Sample_Video.mp4"  # 視頻文件路徑
gif_path = "output.gif"  #GIF保存路徑
convert_video_to_gif(video_path, gif_path, start_time=0, duration=15)

8.字數統計(WordCounter)

這個自動化腳本能夠追蹤你每天寫了多少字,還能在達到寫作目標時給予鼓勵。

import pynput
from pynput.keyboard import Key, Listener
from win10toast import ToastNotifier

# 初始化ToastNotifier對象
toaster = ToastNotifier()
keys = []
word_count_session = 0
word_count = 1000  # 累計寫作字數
target_word_count = 1000  # 每日目標字數

def on_press(key):
    global word_count_session, keys
    if key == Key.space:
        word_count_session += 1
    elif key == Key.esc:
        return False
    keys.append(key)
    write_file(keys)
    if word_count_session >= 1000:
        session_info()

def session_info():
    global word_count, word_count_session
    word_count += word_count_session
    word_count_session = 0
    if word_count > target_word_count:
        # 提示消息
        message = f"Congrats! You have achieved your {target_word_count} Words Daily Target"
        toaster.show_toast("Counter ??", message, duration=10)

def write_file(keys):
    with open('log.txt', 'w') as f:
        for key in keys:
            if key == Key.space:
                f.write(' ')
            else:
                k = str(key).replace("'", "")
                if k[0:3] == 'Key':
                    pass
                else:
                    f.write(k)

with Listener(on_press=on_press) as listener:
    listener.join()

9.假數據填充(FakeFill)

對于數據科學家來說,測試模型時需要生成逼真的假數據集;對于普通人來說,填寫表格時也需要隨機信息。

這個Python自動化腳本能夠滿足這些需求,快速創建看起來真實的假數據,非常適合測試、開發和模擬用途。無論是姓名、電子郵件還是電話號碼,這個工具都能高效地產出樣本數據。

import streamlit as st
import pandas as pd
from mimesis import Person, Address
from mimesis.enums import Gender
from io import StringIO

# 可用數據生成器字典
generators = {
    "Name": lambda: person.full_name(),
    "Email": lambda: person.email(),
    "Address": lambda: address.address(),
    "Phone Number": lambda: person.telephone(),
    "Job": lambda: person.occupation(),
}

# 生成數據的函數
def generate_data(columns, rows):
    data = {col: [generators[col]() for _ in range(rows)] for col in columns}
    return pd.DataFrame(data)

# Streamlit界面
st.title("Test Data Generator ??")

# 設置側邊欄
st.sidebar.header("Data Generation Settings")
selected_columns = st.sidebar.multiselect("Select Columns:", list(generators.keys()))
num_rows = st.sidebar.number_input("Number of Rows:", min_value=1, max_value=1000, value=10)

if st.sidebar.button("Generate Data"):
    if selected_columns:
        person = Person()  # 初始化Mimesis人物提供者
        address = Address()  # 初始化Mimesis地址提供者
        df = generate_data(selected_columns, num_rows)
        
        st.write("### Generated Data")
        st.dataframe(df)
        
        # 將DataFrame轉換為CSV并創建下載鏈接
        csv = df.to_csv(index=False)
        st.download_button(label="Download CSV", data=csv, file_name="random_data.csv", mime="text/csv")
    else:
        st.warning("Please select at least one column.")

10.郵件頭偵探(HeaderSpy)

電子郵件頭承載著揭示郵件來源、傳輸路徑和內容的重要元數據。雖然這些信息默認對收件人隱藏,但可以通過郵件客戶端或特定工具查看。每個郵件頭字段都有其特定功能,對電子郵件系統的順暢運作起著重要作用,它們幫助驗證郵件真實性,提供發送者信息透明度,并在防止垃圾郵件、驗證身份和解決投遞問題上發揮著重要作用。

這個自動化腳本能從郵件頭中提取關鍵信息,助你辨別郵件是否偽造、反彈或有潛在惡意。

import email
import quopri
from email import policy
from email.parser import BytesParser

def parse_email(file_path):
    with open(file_path, 'rb') as file:
        msg = BytesParser(policy=policy.default).parse(file)

    print("From:", msg.get("From", "N/A"))
    print("To:", msg.get("To", "N/A"))
    print("Subject:", msg.get("Subject", "N/A"))
    print("Date:", msg.get("Date", "N/A"))
    print("Message ID:", msg.get("Message-ID", "N/A"))
    print("X-Mailer:", msg.get("X-Mailer", "N/A"))
    # 打印附加信息
    print("\n--- Additional Information ---\n")
    print("SPF:", msg.get("Received-SPF", "N/A"))
    print("DKIM:", msg.get("DKIM-Signature", "N/A"))
    print("DMARC:", msg.get("DMARC-Filter", "N/A"))
    print("SENDERIP:", msg.get("X-Sender-IP", "N/A"))
    print("RETURN PATH:", msg.get("Return-Path", "N/A"))
    print("Reply-To:", msg.get("Reply-To", "N/A"))  
    print('Authentication Results:\n', msg.get('Authentication-Results','N/A'))
    print('Message ID', msg.get('Message-Id','N/A'))

def main():
    email_file_path = "/content/Sample.eml"  ## 郵件文件路徑
    parse_email(email_file_path)
if __name__ == "__main__":
    main()


責任編輯:武曉燕 來源: Python學研大本營
相關推薦

2024-02-02 18:14:17

IDEA插件開發

2023-10-07 16:28:01

2024-10-28 19:36:05

2023-10-29 17:12:26

Python編程

2025-07-01 09:46:30

2022-05-07 14:08:42

Python自動化腳本

2024-05-20 08:30:00

Python編程

2025-07-09 09:10:00

2019-09-26 14:20:27

JavaScript代碼編程語言

2025-01-21 18:07:36

Mac系統代碼

2012-11-08 09:37:45

代碼編程語言

2012-01-17 13:54:02

PHP

2024-04-09 00:00:00

Java代碼片段

2022-04-20 07:42:08

Python腳本代碼

2024-06-21 10:46:44

2023-02-22 16:43:05

Web開發github

2024-09-03 09:44:03

2022-08-29 14:56:56

Python腳本代碼

2021-01-27 11:24:00

項目經理技術技能項目管理

2023-05-29 07:15:52

設置打印機復印證件
點贊
收藏

51CTO技術棧公眾號

香港一级纯黄大片| 亚洲黄色三级视频| silk一区二区三区精品视频| 亚洲国产日日夜夜| 免费看成人av| 国产伦精品一区二区三区四区| 黄色成人av网站| 亚洲欧洲国产精品| 99久久综合网| av有声小说一区二区三区| 亚洲精品久久久久久国产精华液| 国产欧美日韩综合精品二区| 中文字幕欧美人妻精品| 在线成人国产| 超碰精品一区二区三区乱码| 波多野结衣av在线免费观看| 国产一区二区| 欧美在线观看视频一区二区 | 色网站在线视频| 国产在线精彩视频| 亚洲精品欧美在线| 五月天亚洲综合小说网| 日本福利在线观看| 成人综合在线视频| 91免费观看网站| 亚洲婷婷久久综合| 免费亚洲网站| 高清亚洲成在人网站天堂| 欧美色视频一区二区三区在线观看| 台湾色综合娱乐中文网| 亚洲精品一区在线观看| 手机精品视频在线| 国产aa精品| 欧美日韩精品一区二区在线播放| 青青艹视频在线| av免费在线视| 亚洲成a人v欧美综合天堂| 成人免费看片视频在线观看| 日本蜜桃在线观看| 国产精品久久二区二区| 日韩偷拍一区二区| 国产毛片在线| 国产日韩欧美高清在线| 欧美成人综合一区| 日本福利午夜视频在线| 久久亚区不卡日本| 免费久久99精品国产自| 六十路在线观看| 久久网站热最新地址| 免费h精品视频在线播放| 少妇av在线播放| 波波电影院一区二区三区| 国产精品国产亚洲精品看不卡15| 亚洲国产中文字幕在线| 成人涩涩免费视频| 精品国产免费人成电影在线观...| 超碰免费在线97| 成人激情av网| 欧美 日韩 国产在线| 蜜桃视频在线观看网站| 久久精品人人做人人综合| 日韩一区不卡| 免费观看在线午夜影视| 亚洲视频网在线直播| 超碰超碰超碰超碰超碰| 成人av影院在线观看| 亚洲国产wwwccc36天堂| 国产日产欧美视频| 欧美男男gaygay1069| 91极品美女在线| 最新av免费在线观看| 激情久久免费视频| 亚洲成人精品久久久| www.久久av| 色综合五月天| 久久久久九九九九| 五月天婷婷导航| 久久99久久99| 成人在线免费观看一区| 偷拍25位美女撒尿视频在线观看| 国产三级欧美三级日产三级99| 亚洲精品美女久久7777777| 激情在线小视频| 午夜精品一区二区三区电影天堂| 国产成人亚洲精品无码h在线| 国产精品黄色片| 日韩免费视频线观看| 女人被狂躁c到高潮| 国产大片一区| 2019中文字幕在线免费观看| 在线观看免费视频a| 成人小视频免费在线观看| 欧美一区激情视频在线观看| 国产在线观看av| 狠狠色香婷婷久久亚洲精品| 亚洲欧美日韩三级| 日韩在线你懂的| 久久影视电视剧免费网站| 日本少妇毛茸茸高潮| 免费成人av资源网| 成人综合av网| 亚洲图片88| 欧美日韩精品中文字幕| 久久精品国产露脸对白| 九色精品国产蝌蚪| 欧美极品第一页| 一区二区的视频| 久久这里只有精品视频网| 在线观看污视频| 日本免费一区二区三区等视频| 亚洲电影中文字幕| 久久免费看少妇高潮v片特黄| 午夜一区不卡| 国产精品乱子乱xxxx| 日p在线观看| 色偷偷88欧美精品久久久| 久久久久亚洲av无码专区首jn| 欧美一级本道电影免费专区| 性欧美办公室18xxxxhd| 性欧美一区二区三区| 国产精品网站导航| 欧美成人免费高清视频| 加勒比色综合久久久久久久久 | 不卡一本毛片| 欧美一区二区三区色| 亚洲综合第一区| 天堂影院一区二区| 久久综合中文色婷婷| 日本大胆在线观看| 欧美一区二区三区小说| 妖精视频在线观看免费 | www.51色.com| 日韩在线高清| 国产精品色悠悠| 98在线视频| 欧美色倩网站大全免费| 最近中文字幕免费视频| 亚洲一区一卡| 你懂的网址一区二区三区| 僵尸再翻生在线观看| 亚洲成人av片在线观看| 久久免费精彩视频| 成人综合在线网站| 国产3p露脸普通话对白| 国偷自产视频一区二区久| 久久久久久国产精品美女| 亚洲av无码一区二区三区dv| 亚洲综合免费观看高清完整版| wwwxxxx在线观看| 亚洲第一网站| 久久精品久久精品国产大片| 中老年在线免费视频| 国产视频在线观看一区二区| 精品国产一区二区三区四| 国产午夜精品一区二区三区视频 | 日本天堂中文字幕| 理论电影国产精品| 中文字幕一区二区三区乱码| 国产aa精品| 欧美放荡办公室videos4k| 成人久久精品人妻一区二区三区| 亚洲国产一区二区三区青草影视| 中国xxxx性xxxx产国| 久久黄色影院| 致1999电视剧免费观看策驰影院| 精品久久免费| 91精品国产91久久久久| 黄色在线网站| 欧美嫩在线观看| 一区二区三区免费高清视频| 91视频免费观看| 色乱码一区二区三区在线| 欧美黄色aaaa| 六月婷婷久久| 男人天堂久久| 久久久久久久久久国产精品| 午夜av免费观看| 欧美日韩免费在线视频| 欧美日韩在线视频免费| 91色|porny| 日本xxxx黄色| 欧美日韩专区| 亚洲高清视频一区二区| 亚洲1区在线| 国产97在线|亚洲| 污污网站在线看| 亚洲欧美在线一区| h片在线免费看| 日韩人体视频一二区| 国产又粗又硬又长又爽| aaa亚洲精品| 手机免费看av网站| 久久九九电影| www.xxx麻豆| 日韩夫妻性生活xx| 精品视频第一区| 99精品视频在线免费播放| 国产91|九色| 污污视频在线| 日韩视频欧美视频| 日韩a在线观看| 日韩欧美一区在线| 一区二区视频免费观看| 亚洲成人动漫一区| av资源在线免费观看| 99精品一区二区三区| www.久久av.com| 国产精品婷婷| 久久综合久久网| 66视频精品| 日产精品久久久一区二区| 亚洲午夜精品| 亚洲一区亚洲二区亚洲三区| 国产在线|日韩| 欧美整片在线观看| av成人福利| 欧美成人免费播放| av在线免费播放网站| 日韩av中文字幕在线免费观看| 国产模特av私拍大尺度| 欧美自拍丝袜亚洲| 波多野结衣国产| 亚洲一区国产视频| 国产高清视频免费在线观看| 国产三级三级三级精品8ⅰ区| 好吊色视频一区二区三区| 国产成人av电影在线| 日韩av加勒比| 国产一区在线精品| 欧美专区第二页| 精品一区二区三区视频| 久久久久久久久久一区二区| 日本少妇一区二区| 中文字幕一区二区三区四区在线视频 | 日韩精品视频免费| 色香蕉在线视频| 亚洲国产成人av在线| 亚洲免费一级片| 欧美精品一区二区三区一线天视频 | 成人免费精品动漫网站| 中文字幕在线播放不卡一区| 国产aaaaaaaaa| 国产精品女同互慰在线看| 日本欧美一区二区三区不卡视频 | 1024手机在线视频| 亚洲乱码国产乱码精品精98午夜| 欧美色图亚洲视频| 亚洲国产裸拍裸体视频在线观看乱了| 久草视频免费在线播放| 亚洲国产精品久久久久秋霞影院| 日韩免费一二三区| 欧美日韩一区二区免费在线观看| 久久久国产精品成人免费| 欧美日韩国产影院| 国产在线观看第一页| 欧美日韩亚洲国产综合| 国产日韩欧美视频在线观看| 日韩欧美一级精品久久| 欧美天堂在线视频| 亚洲美女性视频| 色综合久久影院| 欧美裸体男粗大视频在线观看| 欧美wwww| 青青草精品毛片| 国产日本久久| 粉嫩高清一区二区三区精品视频| 日本福利一区| 一区二区三区|亚洲午夜| 欧美激情亚洲| 丰满人妻中伦妇伦精品app| 日本aⅴ免费视频一区二区三区 | 97成人超碰视| 精品国产aaa| 亚洲精品视频在线| 成人午夜淫片100集| 欧美军同video69gay| 亚洲第一色视频| 亚洲欧美国产一区二区三区| 三区四区在线视频| 国内精品国产三级国产在线专| 午夜日韩成人影院| 18成人免费观看网站下载| 女仆av观看一区| 国产91av视频在线观看| 亚洲福利国产| 爱爱爱爱免费视频| av网站一区二区三区| 影音先锋男人看片资源| 午夜精品一区二区三区免费视频| 中文字幕无码乱码人妻日韩精品| 日韩视频中午一区| 国内三级在线观看| 欧美黑人一级爽快片淫片高清| 成人勉费视频| 国产精华一区二区三区| 欧美大黑bbbbbbbbb在线| 鲁一鲁一鲁一鲁一色| 国产伦精一区二区三区| 国精产品一区二区三区| 亚洲国产成人高清精品| 国产精品热久久| 国产婷婷97碰碰久久人人蜜臀| 日本中文字幕中出在线| 国产精品视频一区国模私拍 | 欧美黄色一级大片| 精品国产免费久久| 毛片在线看片| 国产精品九九久久久久久久| 久久影视三级福利片| 男人天堂成人网| 久久国产尿小便嘘嘘| 亚洲国产无码精品| 亚洲成人av一区二区| 99久久精品无免国产免费| 中文字幕国内精品| 欧美性suv| 欧美大香线蕉线伊人久久| 黄色成人av网站| 亚洲国产欧美日韩在线| 中文字幕中文乱码欧美一区二区 | 免费观看久久久4p| 人妻少妇一区二区| 天天做天天摸天天爽国产一区| 国产超碰人人模人人爽人人添| 最近2019中文字幕在线高清| 成人在线视频播放| 欧美福利精品| 欧美专区18| 人妻少妇一区二区| 色国产精品一区在线观看| 天天干,夜夜操| 欧美激情视频网址| www.爱久久| 99在线精品免费视频| 粉嫩嫩av羞羞动漫久久久| 久久国产露脸精品国产| 日韩一区和二区| 午夜在线激情影院| 国产99在线播放| 好看的av在线不卡观看| 第一页在线视频| 亚洲一级在线观看| 少妇av在线播放| 51精品国产黑色丝袜高跟鞋| 久久悠悠精品综合网| 久久国产亚洲精品无码| 久久久亚洲国产美女国产盗摄| 国产一区二区视频网站| 亚洲午夜性刺激影院| 国产原创一区| 黄色一级片网址| 成人网在线播放| 日本熟妇色xxxxx日本免费看| 亚洲精品电影在线| 成人免费短视频| 一区二区国产日产| 国产宾馆实践打屁股91| 国产第100页| 亚洲欧洲国产精品| www.久久久.com| 国产美女作爱全过程免费视频| 成人动漫一区二区| 中文字幕黄色片| 久久精品91久久香蕉加勒比| 综合视频一区| 麻豆av免费在线| 成人欧美一区二区三区白人 | 伦伦影院午夜日韩欧美限制| 综合成人在线| 国产精品无码av无码| 国产精品传媒在线| 亚洲乱码精品久久久久.. | 日韩精品在线观看av| 91视频国产观看| 97成人在线观看| 韩日精品中文字幕| jizzjizz欧美69巨大| 自拍视频第一页| 色呦呦一区二区三区| 国产不卡在线| 久久久久se| 国产在线麻豆精品观看| 国产综合精品视频| 久久久91精品国产| 免费精品国产| 免费黄色在线播放| 欧洲av一区二区嗯嗯嗯啊| 91亚洲天堂| 亚洲不卡中文字幕| 不卡在线观看av| 国产精品无码白浆高潮| 清纯唯美亚洲激情| 国产精品jizz在线观看美国| 亚洲黄色小说视频| 亚洲第一页自拍| 亚洲成人a级片| 成人亚洲视频在线观看| 亚洲地区一二三色| 国产日产一区二区| 色一情一乱一伦一区二区三区丨 |