首页 > 解决方案 > 用变量值重命名当前文件

问题描述

我只是想获得ID两行相遇的列''的值(在同一行上相遇)然后使用该行号,我得到列' Name'值来重命名文件。我不认为为一个人写正确的''..任何指针表示赞赏。目前没有错误,但也没有输出。ZipID.rename

import PyPDF2
from PyPDF2 import PdfFileWriter, PdfFileReader

import re
import config
import xlrd
import numpy as np
import pandas as pd
import math
import os

for filename in os.listdir(config.Total):
    if filename.endswith(".pdf"):
        First_Name, Last_Name, Zip = filename.replace(".pdf",'').split()
        Name = First_Name + " " + Last_Name

        print(Name)
        print(Zip)
        data1 = pd.read_excel(config.Excel1)
        data2 = pd.read_excel(config.Excel2)

        df = pd.DataFrame(data1)
        header = df.iloc[0]
        df2 = pd.DataFrame(data2)
        header2 = df2.iloc[0]

        df = df[1:]
        df.rename(columns = header)
        df2 = df2[1:]
        df2.rename(columns = header2)

        row_numberd1 = df[df['Member Name'].str.contains(Name)].index.min()
        row_numberd12 = df[df['Member Address Line 3'].str.contains(Zip)].index.min()

        if row_numberd1 == row_numberd12: # When rows match of NameUp and Zip var in DF1
            rowMatched = row_numberd1
            print("Match Found")
            print(rowMatched)

            MemberID = df['ID'][rowMatched]
            MemberI = str(MemberID)

            os.rename(config.ID+ "/" + MemberI)

        row_numberd2 = df2[df2['Member Name'].str.contains(Name)].index.min()
        row_numberd22 = df2[df2['Member Address Line 3'].str.contains(Zip)].index.min()

        if row_numberd2 == row_numberd22: # When rows match of NameUp and Zip var in DF2
            rowMatched2 = row_numberd2
            print("No Match Found")
            print(rowMatched2)

            MemberID = df2['ID'][rowMatched2]
            MemberI = str(MemberID)

            os.rename(config.ID+ "/" + MemberI)

也许?

    os.rename(config.Total, + MemberI, config.ID)

标签: pythonexcelpandaspython-3.7batch-rename

解决方案


由于代码运行时没有错误,它绝不能进入 if 语句的主体。因此从不重命名。也许没有匹配!您可以通过显式重命名找出:

row = df[df['Member Name'].str.contains(Name) and df['Member Address Line 3'].str.contains(Zip)].index.min()
os.rename("old_filename",str(df['ID'][row]))

推荐阅读