python整理百度网盘批量分享的数据

import pandas as pd
import re
import os

# ---------- 输入输出路径 ----------
csv_path = r"C:\Users\18102\Downloads\jietu\百度网盘分享.csv"
output_excel = r"C:\Users\18102\Downloads\jietu\百度网盘分享完整.xlsx"

# ---------- 您新提供的三条分享记录 ----------
new_records = []

# ---------- 读取现有 CSV(如果存在) ----------
if os.path.exists(csv_path):
    try:
        df_existing = pd.read_csv(csv_path, encoding='utf-8')
    except UnicodeDecodeError:
        df_existing = pd.read_csv(csv_path, encoding='gbk')
    except Exception as e:
        print(f"读取CSV失败:{e}")
        exit()
    # 确保列名正确(若列数正好是4则重命名)
    expected_cols = ['文件名', '链接', '提取码', '分享状态']
    if list(df_existing.columns) != expected_cols:
        if len(df_existing.columns) == 4:
            df_existing.columns = expected_cols
        else:
            print("现有CSV列名不匹配,请检查。")
            print("当前列名:", df_existing.columns.tolist())
            exit()
else:
    print("CSV文件不存在,将只使用新添加的三条记录。")
    df_existing = pd.DataFrame(columns=['文件名', '链接', '提取码', '分享状态'])

# ---------- 添加新记录并去重(防止重复) ----------
df_new = pd.DataFrame(new_records)
df_combined = pd.concat([df_existing, df_new], ignore_index=True)
df_combined.drop_duplicates(subset=['文件名'], keep='first', inplace=True)

# ---------- 提取站点 ID ----------
def extract_id(filename):
    if not isinstance(filename, str):
        return None
    match = re.match(r'^(\d+)', filename)
    return int(match.group(1)) if match else None

df_combined['站点id'] = df_combined['文件名'].apply(extract_id)
# 过滤掉未提取到ID的行(正常情况下不会)
df_valid = df_combined[df_combined['站点id'].notna()].copy()

# ---------- 选择最终列,并按ID排序 ----------
df_result = df_valid[['站点id', '文件名', '链接', '提取码']].copy()
df_result.sort_values('站点id', ascending=True, inplace=True)

# ---------- 输出到 Excel ----------
df_result.to_excel(output_excel, index=False, engine='openpyxl')

print(f"✅ 完整Excel已生成,共 {len(df_result)} 条分享记录。")
print(f"📁 输出路径:{output_excel}")

 

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容