Python Forum
Loop back through loop based on user input, keeping previous changes loop made?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Loop back through loop based on user input, keeping previous changes loop made?
#1
Hello!

Like many, I am currently learning python and working on my first project. It is a script that changes all the files within a directory based on user input. Currently built for TV Show file changes.

so far its going well, I'm just stuck on one thing. I feel like the answer is on the tip of my tongue, like I've heard it in previous lessons I took, I just can't quite remember.

At a certain point in the script, to handle some episodes that may be "2 in 1s", it asks the user to specify if there are Episodes that are joined together (ex one .mp4 file titled "Episode 1, Episode 2"). if the user answers "y", it then asks how many instances this occurs (ex. 2). the user then specifys the # of times, and then the loop asks the same question depending on how many times the user specified (First Episode?, Second Episode?).

This is essentially the process:

(python) Are there multi episodes?
(user) Y

(python) How many?
(user) 2

(python) First Episode?
(user) 1
(python) Second Episode?
(user) 2

(python) First Episode?
(user) 5
(python) Second Episode?
(user) 6

The script should then rename "Episode 1, Episode 2" to E01E02 and "Episode 5, Episode 6" to E05E06. However, the end result is only E05E06 is changed, what i want to be changed to "E01E02" stays at its original title, "Episode 1, Episode 2".

I believe it does change, but the next loop overwrites it, thus only the latest user response changes.

Is there a way to get the loop to keep user changes each time it runs through?

I'm thinking it is a problem with my eptokea and eptokeb strings, just not sure how to go about fixing it

Any help is greatly appreciated!

SAMPLE CODE

        
                epstochange = int(input("How many multi eps? "))
                for i in range(epstochange):
                    i += 1
                    print("Which episodes are joined?")
                    eptokea = input("First Episode: ")
                    eptokeb = input("Second Episode: ")
                    # Starts renaming loop if user specifies tv shows are multi episode
                    path = os.getcwd()
                    os.chdir(filenamedir)
                    filenames = os.listdir(filenamedir)
                    COUNT = 1

                    def increment():
                        global COUNT
                        COUNT = COUNT + 1

                    for f in filenames:
                        f_name, f_ext = os.path.splitext(f)
                        if str(COUNT) == eptokea.format(i):
                            def incrementx():
                                global COUNT
                                COUNT = COUNT + 2
                            f_name = showname + " - " + "S" + season.zfill(2) + "E" + eptokea.format(i).zfill(2) + "E" + eptokeb.format(i).zfill(2)
                            incrementx()

                            new_name = '{} {}'.format(f_name, f_ext)
                            os.rename(f, new_name)
                        else:
                            f_name = showname + " - " + "S" + season.zfill(2) + "E" + str(COUNT).zfill(2)
                            increment()

                            new_name = '{} {}'.format(f_name, f_ext)
                            os.rename(f, new_name)
Reply


Messages In This Thread
Loop back through loop based on user input, keeping previous changes loop made? - by hbkpancakes - Nov-18-2020, 11:28 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  for loop not executing Abendrot47 2 190 Apr-09-2024, 07:14 PM
Last Post: deanhystad
  Re Try loop for "net use..." failures tester_V 10 562 Mar-02-2024, 08:15 AM
Last Post: tester_V
  File loop curiously skipping files - FIXED mbk34 10 788 Feb-10-2024, 07:08 AM
Last Post: buran
  Optimise multiply for loop in Python KenBCN 4 479 Feb-06-2024, 06:48 PM
Last Post: Gribouillis
  Basic binary search algorithm - using a while loop Drone4four 1 352 Jan-22-2024, 06:34 PM
Last Post: deanhystad
  loop through csv format from weburl in python maddyad82 3 387 Jan-17-2024, 10:08 PM
Last Post: deanhystad
  Variable definitions inside loop / could be better? gugarciap 2 432 Jan-09-2024, 11:11 PM
Last Post: deanhystad
  UART & I2C slow down a loop trix 4 607 Dec-28-2023, 05:14 PM
Last Post: trix
  Need an alternative to brute force optimization loop jmbonni 5 1,172 Dec-07-2023, 12:28 PM
Last Post: RockBlok
  Loop over an an array of array Chendipeter 1 574 Nov-28-2023, 06:37 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020