Rename current file with variable value

僤鯓⒐⒋嵵緔 提交于 2019-12-13 03:10:01

问题


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:


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]))


来源:https://stackoverflow.com/questions/57383038/rename-current-file-with-variable-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!