Vous allez voir que c'est assez simple et facilement modifiable.

def recursivelyMoveFile(srcFile, dstFile) :
 
	curFolderPath = os.path.sep	# get the os separator. "/" on linux.
 
	# we regenerate the folder path we want to create the file in and check, at every step the folder exists
	for folder in os.path.dirname(dstFile).split(os.path.sep) :
 
		curFolderPath = os.path.join(curFolderPath, folder)
 
		if not os.path.isdir(curFolderPath) :
 
			os.mkdir(curFolderPath)
 
	os.rename(srcFile, dstFile)

Vous voyez? Rien de bien sorcier. :sourit:

Notez que la fonction ne vérifie rien du tout. Soyez donc vigilant avec le os.rename.

Bon... Comme je suis gentil je vous propose une fonction blindé anti-pythonic pour le coup (pour les copieurs/colleurs foux qui ne prennent pas le temps de lire :aupoil: )

def recursivelyMoveFile(srcFile, dstFile) :
 
	if not os.path.isfile(srcFile) :
		raise Exception("srcFile is not a file -> %s", srcFile)
 
	if os.path.isfile(dstFile) :
		raise Exception("dstFile already exist -> %s", dstFile)
 
 
	curFolderPath = os.path.sep	# get the os separator. "/" on linux.
 
	# we regenerate the folder path we want to create the file in and check, at every step the folder exists
	for folder in os.path.dirname(dstFile).split(os.path.sep) :
 
		curFolderPath = os.path.join(curFolderPath, folder)
 
		if not os.path.isdir(curFolderPath) :
 
			os.mkdir(curFolderPath)
 
	os.rename(srcFile, dstFile)

Codez bien! (Et vite surtout! :gniarkgniark: )