Rename current file with variable value

2019-08-16 12:09发布

I am simply trying to get the value of column 'ID' where two rows meet (meet where Name and Zip are on the same row) then with that row number, I get column 'ID' value to rename file with. I don't think writing the '.rename' correctly for one.. any pointers appreciated. Currently no error, but no output either.

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)

Maybe?

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

1条回答
该账号已被封号
2楼-- · 2019-08-16 12:35

Since the code runs without an error, it must never gets into the body of if statement. Hence never renames. Maybe there is no match! You can find out by explicit renaming:

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]))
查看更多
登录 后发表回答