Je veux échantillonner au hasard un fichier avec Python

Choses à faire

  1. Créez 100 fichiers
  2. Obtenez le chemin du fichier avec l'extension spécifiée
  3. Sélectionnez au hasard 10 et copiez-le dans un autre répertoire

Structure du répertoire

.
├── input
│   └── _sampled
└── src
    └── random_sampling.py

code

random_smpling.py


from pprint import pprint
import os
from pathlib import Path
import random
import shutil


class FileControler(object):
    def make_file(self, output_dir, file_name, content='') -> None:
        """Création de fichier"""
        #Créer s'il n'y a pas de répertoire de destination de sortie
        os.makedirs(output_dir, exist_ok=True)
        #Combiner le répertoire de sortie et le nom de fichier
        file_path = os.path.join(output_dir, file_name)
        #Création de fichier
        with open(file_path, mode='w') as f:
            #Créer un fichier vide par défaut
            f.write(content)

    def get_files_path(self, input_dir, pattern):
        """Obtenir le chemin du fichier"""
        #Créer un objet chemin en spécifiant un répertoire
        path_obj = Path(input_dir)
        #Faire correspondre les fichiers au format glob
        files_path = path_obj.glob(pattern)
        #Conversion Posix à traiter comme une chaîne de caractères
        files_path_posix = [file_path.as_posix() for file_path in files_path]
        return files_path_posix

    def random_sampling(self, files_path, sampl_num, output_dir, fix_seed=True) -> None:
        """Échantillonnage aléatoire"""
        #Valeur de départ fixe lors de l'échantillonnage du même fichier à chaque fois
        if fix_seed is True:
            random.seed(0)
        #Spécifiez le chemin du groupe de fichiers et le nombre d'échantillons
        files_path_sampled = random.sample(files_path, sampl_num)
        #Créer s'il n'y a pas de répertoire de destination de sortie
        os.makedirs(output_dir, exist_ok=True)
        #copie
        for file_path in files_path_sampled:
            shutil.copy(file_path, output_dir)

Courir

Création d'instance

file_controler = FileControler()

annuaire

Créez 100 fichiers dans ʻinput / Copiez le fichier échantillonné dans ʻinput / _sampled

all_files_dir = '../input'
sampled_dir = '../input/_sampled'

Créez d'abord 100 fichiers

50 fichiers chacun de .py et .txt

for i in range(1, 51):
    file_controler.make_file(all_files_dir, f'file{i}.py')
    file_controler.make_file(all_files_dir, f'file{i}.txt')

Obtenez uniquement le chemin du fichier .py

from pprint import pprint


pattern = '*.py'
files_path = file_controler.get_files_path(all_files_dir, pattern)

pprint(files_path)
# ['../input/file8.py',
#  '../input/file28.py',
#  '../input/file38.py',
#  .
#  .
#  .
#  '../input/file25.py',
#  '../input/file35.py',
#  '../input/file50.py']
#

print(len(files_path))
# 50

Échantillonnage aléatoire pour 10 fichiers

sample_num = 10
file_controler.random_sampling(files_path, sample_num, sampled_dir)

Vérification

Terminal


ls input/_sampled

file10.py file23.py file3.py  file35.py file36.py file37.py file38.py file4.py  file41.py file43.py

Recommended Posts

Je veux échantillonner au hasard un fichier avec Python
Je veux créer une fenêtre avec Python
Je veux écrire dans un fichier avec Python
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux travailler avec un robot en python.
Je veux ajouter un joli complément à input () en python
Je veux imprimer dans la notation d'inclusion
Je veux créer un environnement Python
Je veux faire le test de Dunnett en Python
Comment créer un fichier JSON en Python
Je veux faire un jeu avec Python
Je veux fusionner des dictionnaires imbriqués en Python
Exemple pour mettre Python Kivy dans un fichier
Je veux afficher la progression en Python!
Je souhaite convertir une table convertie en PDF en Python en CSV
Je veux colorer une partie de la chaîne Excel avec Python
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Je veux faire un patch monkey seulement en partie en toute sécurité avec Python
Je veux écrire en Python! (1) Vérification du format de code
Analyser une chaîne JSON écrite dans un fichier en Python
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Je veux faire la transition avec un bouton sur le ballon
Même avec JavaScript, je veux voir Python `range ()`!
J'ai essayé d'implémenter un pseudo pachislot en Python
Un mémorandum pour exécuter un script python dans un fichier bat
[Python] Je veux faire d'une liste imbriquée un taple
Je veux écrire en Python! (3) Utiliser des simulacres
Je veux utiliser le jeu de données R avec python
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux faire quelque chose avec Python à la fin
Je veux manipuler des chaînes dans Kotlin comme Python!
Le programme Python est lent! Je veux accélérer! Dans ce cas ...
Je veux obtenir le nom du fichier, le numéro de ligne et le nom de la fonction dans Python 3.4
Créer un fichier binaire en Python
Je veux déboguer avec Python
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
Je veux faire quelque chose comme sort uniq en Python
Changer la destination de sortie standard en un fichier en Python
[Python] Je souhaite obtenir un ensemble commun entre numpy
Je veux démarrer beaucoup de processus à partir de python
Comment importer des fichiers où vous le souhaitez en Python
J'ai essayé "Comment obtenir une méthode décorée en Python"
Je souhaite envoyer un message de Python à LINE Bot
J'ai fait un chronomètre en utilisant tkinter avec python
Je veux pouvoir exécuter Python avec VS Code
Je souhaite utiliser une source de données python dans Re: Dash pour obtenir les résultats de la requête.
Je veux remplacer les variables dans le fichier de modèle python et le produire en masse dans un autre fichier
J'ai essayé d'implémenter PLSA en Python
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
J'ai essayé d'implémenter la permutation en Python
J'ai créé un script en Python pour convertir un fichier texte pour JSON (pour l'extrait d'utilisateur vscode)
J'ai fait un programme de gestion de la paie en Python!
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
Convertir un fichier psd en png en Python
Exemple de script pour piéger les signaux en Python
J'ai essayé d'implémenter PLSA dans Python 2
Je veux utiliser jar de python
Je souhaite rechercher le texte intégral avec elasticsearch + python