Skip to main content

Python - Need help renaming all pdf in a folder based on 2 criteria

I am very new to programing, and I am trying to strengthen my Python skills via unique problems I find at my job. Currently, I have a program that is exporting PDFs from a remote desktop and it is automatically lowercasing all of the letters in the filename. We use two different item code formats, so I need to come up with a way to rename them all at once so that I can run a script periodically to fix this issue and gain my sanity back. I will provide examples of what I have, and what I want to convert the names to below:

Materials 4000a example material test 4000A Example Material Test

Finished Products

test-2000a-tp-a example finished product TEST-2000A-TP-A Example Finished Product

I am not sure how to best do this, but you can see exactly which positions I want to capitalize based on these formats. The materials one should be easier, the finished product one will take a little more creativity probably. I have looked around on here, Github, and a few other places...and I like this framework from GitHub but I can't figure out how to write the code for the renaming of the above examples. I have both types in the same folder, so I would like to have a script that does both and uses the try/except, and the confirmation of change so that I can prevent mistakes and learn to write better code.

Here is the code that I have now, with the section I need help on shown in comments:

import os

folder = '/Dev/Test_Rename_PDF'

for fileName in os.listdir('.'):
    try:
        # Find all PDF (all of them are, but I wanted a more diverse script for future uses)
        if fileName.lower()[-3:] != "pdf":
            continue
        print("Processing " + fileName)
        
        # Uppercase based on the two conditions I provided above.
        # (NEED HELP HERE)

        # Ask user for confirmation to change
        option = raw_input("Do you want to rename '" + fileName + "'' to '" + newName + "'? [y][n]: ")
        option = option.lower()

        # Change if approved
        if(option.startswith('y')):
            os.rename(fileName, newName)

    except:
        print("Error in processing: " + fileName)

I'm trying my best to learn by doing with Python right now, and I know I probably have other mistakes, but I am doing my best and taking online classes as I have time. I appreciate your time!



source https://stackoverflow.com/questions/75881692/python-need-help-renaming-all-pdf-in-a-folder-based-on-2-criteria

Comments

Popular posts from this blog

Confusion between commands.Bot and discord.Client | Which one should I use?

Whenever you look at YouTube tutorials or code from this website there is a real variation. Some developers use client = discord.Client(intents=intents) while the others use bot = commands.Bot(command_prefix="something", intents=intents) . Now I know slightly about the difference but I get errors from different places from my code when I use either of them and its confusing. Especially since there has a few changes over the years in discord.py it is hard to find the real difference. I tried sticking to discord.Client then I found that there are more features in commands.Bot . Then I found errors when using commands.Bot . An example of this is: When I try to use commands.Bot client = commands.Bot(command_prefix=">",intents=intents) async def load(): for filename in os.listdir("./Cogs"): if filename.endswith(".py"): client.load_extension(f"Cogs.{filename[:-3]}") The above doesnt giveany response from my Cogs ...

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Where and how is this Laravel kernel constructor called? [closed]

Where and how is this Laravel kernel constructor called? public fucntion __construct(Application $app, $Router $roouter) { } I have read the documentation and some online tutorial but I can find any clear explanation. I am learning Laravel and I am wondering where does this kernel constructor receives its arguments from. "POSTMOTERM" CLARIFICATION: Here is more clarity.I have checked the boostrap/app.php and it is only used for boostrapping the interfaces into the container class. What is not clear to me is where and how the Kernel class is instatiated and the arguments passed to the object calling the constructor.Something similar to; obj = new kernel(arg1,arg2) or, is the framework using some magic functions somewhere? Special gratitude to those who burn their eyeballs and brain cells on this trivia before it goes into a full blown menopause alias "MARKED AS DUPLICATE". To some of the itchy-finger keyboard warriors, a.k.a The mods,because I believe in th...