résumé lié à l'opération de fichier python

python


#Working With Files in Python
#https://realpython.com/working-with-files-in-python/

#python3
import os
from pathlib import Path
import shutil

#Obtenir le nom du fichier à partir du chemin du fichier
    basename = os.path.basename(filepath)
    basename_without_ext = os.path.splitext(os.path.basename(filepath))[0]

#Vérification de l'existence du fichier
    cwd = os.getcwd()                        
    cwd_f = cwd + "/"+filename               
    if os.path.isfile(cwd_f) == True         

#Lire le fichier
    #https://dbader.org/blog/python-file-io
    with open('data.txt', 'r') as f:
        data = f.read()
        print('context: {}'.format(data))
    
#Lecture et édition de fichiers
    with open('data.txt', 'w') as f:
        data = 'some data to be written to the file'
        f.write(data)
    
#Obtenir la liste des dossiers et des fichiers
#Structure des dossiers
    # my_directory
    # ├── file1.py
    # ├── file2.csv
    # ├── file3.txt
    # ├── sub_dir
    # │   ├── bar.py
    # │   └── foo.py
    # ├── sub_dir_b
    # │   └── file4.txt
    # └── sub_dir_c
        # ├── config.py
        # └── file5.txt
    #Méthode 1
    entries = os.listdir('my_directory')#les entrées est une liste
    for entry in entries:
        print(entry)
    #→['file1.py', 'file2.csv', 'file3.txt', 'sub_dir', 'sub_dir_b', 'sub_dir_c']

    #Méthode 2 python 3.5 ou plus tard
    with os.scandir('my_directory') as entries:#les entrées est un itérateur
    for entry in entries:
        print(entry.name)
        
    #Méthode 3 python 3.4 ou plus tard
    entries = Path('my_directory')
    for entry in entries.iterdir():
        print(entry.name)

#Obtenir la liste avec les sous-dossiers
    for dirpath, dirname, files in os.walk('.'):
        print(f'Found directory: {dirpath}')
        for file_name in files:
            print(file_name)

#Jugement de dossier
    #Méthode 1
    for entry in os.listdir(basepath):
        if os.path.isfile(os.path.join(base_path, entry)):
            print(entry)
    #Méthode 2 python 3.5 ou plus tard
    with os.scandir(basepath) as entries:
        for entry in entries:
            if entry.is_file():
                print(entry.name)
    #Méthode 3 python 3.4 ou plus tard
    basepath = Path('my_directory')
    for entry in basepath.iterdir():
        if entry.is_file():
            print(entry.name)
    # or
    basepath = Path('my_directory')
    files_in_basepath = (entry for entry in basepath.iterdir() if entry.is_file())
    for item in files_in_basepath:
        print(item.name)
        
#Obtenir le sous-dossier
    #Méthode 1
    for entry in os.listdir(basepath):
        if os.path.isdir(os.path.join(basepath, entry)):
            print(entry)
    #Méthode 2
    with os.scandir(basepath) as entries:
        for entry in entries:
            if entry.is_dir():
                print(entry.name)
    #Méthode 3
    for entry in basepath.iterdir():
        if entry.is_dir():
            print(entry.name)
     
#Obtenir l'heure de modification du fichier
    #Méthode 1
    with os.scandir('my_directory') as entries:
        for entry in entries:
            info = entry.stat()
            print(info.st_mtime)
    #Méthode 2
    for entry in basepath.iterdir():
        info = entry.stat()
        print(info.st_mtime)
        
    #* Lié à la conversion du temps
    timestamp = int(info.st_mtime)#Supprimer ms secondes
    dt = datetime.datetime.utcfromtimestamp(info.st_mtime) #st_mtime → datetime
    dt = dt.strftime('%Y-%m-%d %H:%M:%S')
    #https://strftime.org/
    #https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior
    
#Créer le dossier
    #Méthode 1
    try:
        os.mkdir('directory')
    except FileExistsError as e:
        print(e)
    #Méthode 2
    p = Path('directory')
    try:
        p.mkdir()
    except FileExistsError as e:
        print(e)
    #* En ignorant l'erreur,
    p.mkdir(exist_ok=True)
    #* Créer un sous-dossier
    os.makedirs('floder/subf/sub')

#Créer un fichier temporaire
    from tempfile import  TemporaryFile
    #Création de fichiers temporaires et saisie de données
    fp = TemporaryFile('w+t')
    fp.write('Hello World!')
    #Lecture des données
    fp.seek(0)
    data = fp.read()
    print(data)
    #Fermer le fichier (suppression automatique)
    fp.close()
    
    #avec version
    with TemporaryFile('w+t') as fp:
        fp.write('i am good man!')
        fp.seek(0)
        fp.read()     
#Créer un dossier temporaire
    import tempfile
    with tempfile.TemporaryDirectory() as tmpdir:
        print('Created temporary directory ', tmpdir)
        print(os.path.exists(tmpdir))
#Supprimer le fichier
    os.remove(file)
    #or
    os.unlink(file)
#Supprimer le dossier
    os.rmdir(dir)
    #or
    dir = Path('my_documents/bad_dir')
    dir.rmdir()
#Supprimer l'arborescence des dossiers
    shutil.rmtree(dir_tree)
#Copie de fichier
    shutil.copy(src, dst)
    #or
    shutil.copy2(src, dst)#Copier les propriétés du fichier
#Copie de l'arborescence des dossiers
    dst = shutil.copytree('data', 'databackup')
#Déplacer des fichiers et des dossiers
    dst = shutil.move('dir/', 'backup/')
#Renommer des fichiers et des dossiers
    os.rename('first.zip', 'first_01.zip')
    
#.Trouver le fichier txt
    #Strings and Character Data in Python
    #https://realpython.com/python-strings/
    #Méthode 1
    for f_name in os.listdir('directory'):
        if f_name.endswith('.txt'):
            print(f_name)
    #Méthode 2
    import fnmatch
    for f_name in os.listdir('directory'):
        if fnmatch.fnmatch(f_name, 'data_*_2020*.txt'):
            print(f_name)
    #Méthode 3
    import glob
    for name in glob.glob('*/*/*[0-9]*.txt'):#Sous-dossier, contenant les caractères 0-9.Trouvez le fichier txt
        print(name)
        
#Lire le fichier zip
    import zipfile
    with zipfile.ZipFile('data.zip', 'r') as zipobj:
        for names in zipobj.namelist():
            if os.path.isfile(names)
                info = zipobj.getinfo(names)
                print(info.file_size,bar_info.date_time,bar_info.filename)

#Décompressez le fichier spécifié du fichier zip
    data_zip = zipfile.ZipFile('data.zip', 'r')
    #data.file1 dans zip.Décompressez py dans votre répertoire de travail
    data_zip.extract('file1.py')
    #Décompressez tout dans le dossier spécifié
    data_zip.extractall(path='extract_dir/')
    #Si vous avez un mot de passe
    data_zip.extractall(path='extract_dir', pwd='password')
    data_zip.close()

#Créer et ajouter un fichier zip
    #Créer
    file_list = ['file1.py', 'sub_dir/', 'sub_dir/bar.py', 'sub_dir/foo.py']
    with zipfile.ZipFile('new.zip', 'w') as new_zip:
        for name in file_list:
            new_zip.write(name)
    #ajouter à
    with zipfile.ZipFile('new.zip', 'a') as new_zip:
        new_zip.write('data.txt')
        new_zip.write('latin.txt')

#Lire le fichier tar
    import tarfile
    with tarfile.open('example.tar', 'r') as tar_file:
        #mode :['r','r:gz','r:bz2','w','w:gz','w:xz','a']
        for entry in tar_file.getmembers():
            print(entry.name)
            print(' Modified:', time.ctime(entry.mtime))
            print(' Size    :', entry.size, 'bytes')
        #or
        f = tar_file.extractfile('app.py')
        f.read()

#Décompressez le fichier spécifié du fichier tar
    tar = tarfile.open('example.tar', mode='r')
    #Décompressez dans le répertoire actuel
    tar.extract('README.md')
    #Décompressez tout dans le dossier spécifié
    tar.extractall(path="extracted/")
    
#Créer et ajouter un fichier tar
    #Créer
    import tarfile
    file_list = ['app.py', 'config.py', 'CONTRIBUTORS.md', 'tests.py']
    with tarfile.open('packages.tar', mode='w') as tar:
        for file in file_list:
            tar.add(file)
    #ajouter à
    with tarfile.open('package.tar', mode='a') as tar:
        tar.add('foo.bar')
    #Vérification
    with tarfile.open('package.tar', mode='r') as tar:
        for member in tar.getmembers():
            print(member.name)
            
#shutil.make_archive()Compression de dossier avec
    import shutil
    #sauvegarder les fichiers dans le dossier de données.Compresser en goudron
    shutil.make_archive('data/backup', 'tar', 'data/')
    #Dégivrer
    shutil.unpack_archive('backup.tar', 'extract_dir/')
    
#Lire plusieurs fichiers
    #https://docs.python.org/3/library/fileinput.html
    import fileinput,sys
    for line in fileinput.input():
        if fileinput.isfirstline():
            print(f'\n--- Reading {fileinput.filename()} ---')
        print(' -> ' + line, end='')

Mémos informatiques pour les secteurs non informatiques

Recommended Posts

résumé lié à l'opération de fichier python
Résumé des opérations de liste Python3
[Python] Résumé des opérations sur les fichiers S3 avec boto3
Opérations sur les fichiers en Python
[Python] Opération de fichier / répertoire
Manipulation de fichiers avec Python
Résumé des opérations sur les chaînes
Résumé des arguments Python
[Python3] Comprendre les bases des opérations sur les fichiers
Résumé des opérations Excel utilisant OpenPyXL en Python
Résumé Python
Résumé Python
Opération de fichier
Chiffrement facile du contenu des fichiers (Python)
Un bref résumé de la collection Python
Résumé des différentes opérations dans Tensorflow
Mémo Python ① Opérations sur les dossiers et fichiers
ORC, opérations de fichier Parquet en Python
Résumé des index et des tranches Python
[OpenCV; Python] Résumé de la fonction findcontours
Fichier python de script
Résumé du didacticiel Python
Vérifier l'existence du fichier avec python
Résumé de diverses instructions for en Python
Traitement de fichiers Python
Les bases de Python ①
Bases de python ①
[Python2.7] Résumé de l'utilisation d'unittest
Copie de python
Résumé des méthodes intégrées, etc. de la liste Python
Résumé des techniques utiles de Scrapy en Python
résumé relatif à python
Résumé de l'utilisation de la liste Python
[Python] Récupère le code de caractère du fichier
[Python2.7] Résumé de l'utilisation du sous-processus
Résumé de la spécification des options d'axe de Python "numpy.sum (...)"
Résumé des bases de Python
Introduction de Python
Résumé des opérations souvent effectuées avec asyncpg
Résumé des processus souvent effectués par Pandas 1 (CSV, opérations liées aux fichiers Excel)
Résumé de la correspondance entre les opérations de tableau ruby et python
Résumé des différences entre PHP et Python
Résumé de la façon d'importer des fichiers dans Python 3
[Python] [chardet] Détection automatique du code de caractère dans les fichiers
Résumé de l'utilisation de MNIST avec Python
Installation de Python 3 et Flask [Résumé de la construction de l'environnement]
[Python] Chapitre 02-01 Bases des programmes Python (opérations et variables)
Résumé des tableaux Python fréquemment utilisés (pour moi-même)
Résumé de l'étude de Python pour utiliser AWS Lambda
Résumé relatif aux E / S de python et fortran
Convertir le code de caractère du fichier avec Python3
[Python] Chapitre 02-05 Bases des programmes Python (opérations / méthodes de chaînes de caractères)
Évaluation de la vitesse de sortie du fichier CSV en Python
Obtenez la date de mise à jour du fichier de mémorandum Python.
Liste des modules python