Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Invalid argument when renaming folder

I'm creating a script that renames a folder to "foldername_original" but I'm getting invalid argument error.

Here is my script

import glob, os
import shutil
path= input("Path to directory containing the dataset: ")

ext = input("Extention of the dataset (eg.  txt): ")

data_files = []
def get_file_list():
    os.chdir(path)
    for file in glob.glob("*."+ext):
        data_files.append(file)
    
    data_length = len(data_files)
    print("Total files with extention *."+ext+" found: "+ str(data_length))
    batch_size= input("Please enter the required batch size: ")
    folder_rename()

def folder_rename():
    data_folder_name = os.path.basename(path)
    print("Original dataset folder path: ")
    print(path)
    os.rename(path, os.path.basename(path)+"_original")
    new_path= path+"_original"
    print("Original dataset folder renamed to: "+ data_folder_name+"_original" )
    print("Original dataset new path is: "+new_path)

here is the error output

Traceback (most recent call last):
  File "data_batch.py", line 47, in <module>
    get_file_list()
  File "data_batch.py", line 23, in get_file_list
    folder_rename()
  File "data_batch.py", line 29, in folder_rename
    os.rename(path, os.path.basename(path)+"_original")
OSError: [Errno 22] Invalid argument: '/mainfs/scratch/ah/Datasets_sample/raw/2018/fk180731/tuna_sand/20180811_153727_ts_un6k_NEW/image/i20180811_153727' -> 'i20180811_153727_original'
like image 927
ahassona Avatar asked Jun 09 '26 21:06

ahassona


1 Answers

You can do it by

os.rename(path, path+"_original")

the os.path.basename(path)+"_original" is not giving the full path that os.rename is expecting

like image 148
Leo Arad Avatar answered Jun 11 '26 09:06

Leo Arad



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!