J'ai plusieurs dossiers de fichiers et j'essaie de déplacer un échantillon de fichiers sélectionnés au hasard d'un dossier à un autre. Je travaille avec le code ci-dessous, mais ce n'est pas tout à fait en cours d'exécution.
import os, random, shutil
source='folder_path_1'
dest='dest_folder_path'
onlyfiles = [f for f in os.listdir(source) if os.path.isfile(os.path.join(source, f))]
no_of_files = round((len(onlyfiles)/5))
print(no_of_files)
for i in range(no_of_files):
random_file=random.choice(os.listdir(source))
source_file="%s\%s"%(source,random_file)
dest_file=dest
shutil.move(source_file,dest_file)
3 Réponses :
import os, random, shutil
source ='C:\\Users\\OlavA\\Desktop\\Start'
destination ='C:\\Users\\OlavA\\Desktop\\Destination'
onlyfiles = [f for f in os.listdir(source) if os.path.isfile(os.path.join(source, f))]
no_of_files = round((len(onlyfiles)/5))
def main():
for i in range(no_of_files):
files = [filenames for (filenames) in os.listdir(source)]
random_file = random.choice(files)
shutil.move(f'{source}\\{random_file}', destination)
if __name__ == '__main__':
main()
This works, not the best code at all but it works.
Just remember to change your start path and destination path with your own, and you need \\ instead of \ in the path since it's a escape character.
Cela ne tient pas compte du nombre de fichiers que j'aimerais bouger
Oui, n'avait pas vu qu'il le voulait, changé, fonctionne maintenant.
Je n'avais aucune idée de ce que Shuttil n'est que je me suis complètement débranché. J'ai plutôt utilisé la commande intégrée ouverte () code>. Voici mon code: import os, random
delete = True
source='source'
dest='destination'
onlyfiles = [f for f in os.listdir(source) if os.path.isfile(os.path.join(source, f))]
no_of_files = round((len(onlyfiles)/5))
print(no_of_files)
for i in range(no_of_files):
random_file=random.choice(os.listdir(source))
source_file="%s/%s"%(source,random_file)
dest_file=dest+'/'+random_file
destination_for_file = open(dest_file,'wb+')
source_for_file = open(source_file,'rb')
destination_for_file.write(source_for_file.read())
destination_for_file.close()
#optional (to delete the source)
if delete:
os.remove(source_file)
Cela devrait ressembler à quelque chose comme ça. Nous pourrions utiliser aléatoire.sample () code> pour obtenir une quantité spécifique d'éléments uniques aléatoires de notre liste (ici fichiers code>)
S'il vous plaît coller votre erreur ici.