Zusammenfassung der Python-Dateivorgänge

python


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

#python3
import os
from pathlib import Path
import shutil

#Dateinamen aus Dateipfad abrufen
    basename = os.path.basename(filepath)
    basename_without_ext = os.path.splitext(os.path.basename(filepath))[0]

#Überprüfung der Dateiexistenz
    cwd = os.getcwd()                        
    cwd_f = cwd + "/"+filename               
    if os.path.isfile(cwd_f) == True         

#Datei lesen
    #https://dbader.org/blog/python-file-io
    with open('data.txt', 'r') as f:
        data = f.read()
        print('context: {}'.format(data))
    
#Lesen und Bearbeiten von Dateien
    with open('data.txt', 'w') as f:
        data = 'some data to be written to the file'
        f.write(data)
    
#Ordner- und Dateiliste abrufen
#Ordnerstruktur
    # 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
    #Methode 1
    entries = os.listdir('my_directory')#Einträge ist eine Liste
    for entry in entries:
        print(entry)
    #→['file1.py', 'file2.csv', 'file3.txt', 'sub_dir', 'sub_dir_b', 'sub_dir_c']

    #Methode 2 Python 3.5 oder später
    with os.scandir('my_directory') as entries:#Einträge ist ein Iterator
    for entry in entries:
        print(entry.name)
        
    #Methode 3 Python 3.4 oder später
    entries = Path('my_directory')
    for entry in entries.iterdir():
        print(entry.name)

#Liste mit Unterordnern abrufen
    for dirpath, dirname, files in os.walk('.'):
        print(f'Found directory: {dirpath}')
        for file_name in files:
            print(file_name)

#Aktenurteil
    #Methode 1
    for entry in os.listdir(basepath):
        if os.path.isfile(os.path.join(base_path, entry)):
            print(entry)
    #Methode 2 Python 3.5 oder später
    with os.scandir(basepath) as entries:
        for entry in entries:
            if entry.is_file():
                print(entry.name)
    #Methode 3 Python 3.4 oder später
    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)
        
#Unterordner abrufen
    #Methode 1
    for entry in os.listdir(basepath):
        if os.path.isdir(os.path.join(basepath, entry)):
            print(entry)
    #Methode 2
    with os.scandir(basepath) as entries:
        for entry in entries:
            if entry.is_dir():
                print(entry.name)
    #Methode 3
    for entry in basepath.iterdir():
        if entry.is_dir():
            print(entry.name)
     
#Holen Sie sich die Bearbeitungszeit für Dateien
    #Methode 1
    with os.scandir('my_directory') as entries:
        for entry in entries:
            info = entry.stat()
            print(info.st_mtime)
    #Methode 2
    for entry in basepath.iterdir():
        info = entry.stat()
        print(info.st_mtime)
        
    #* Zeitumrechnung bezogen
    timestamp = int(info.st_mtime)#Ms Sekunden löschen
    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
    
#Ordner erstellen
    #Methode 1
    try:
        os.mkdir('directory')
    except FileExistsError as e:
        print(e)
    #Methode 2
    p = Path('directory')
    try:
        p.mkdir()
    except FileExistsError as e:
        print(e)
    #* Beim Ignorieren des Fehlers,
    p.mkdir(exist_ok=True)
    #* Unterordner erstellen
    os.makedirs('floder/subf/sub')

#Temporäre Datei erstellen
    from tempfile import  TemporaryFile
    #Temporäre Dateierstellung und Dateneingabe
    fp = TemporaryFile('w+t')
    fp.write('Hello World!')
    #Daten gelesen
    fp.seek(0)
    data = fp.read()
    print(data)
    #Datei schließen (automatisches Löschen)
    fp.close()
    
    #mit Version
    with TemporaryFile('w+t') as fp:
        fp.write('i am good man!')
        fp.seek(0)
        fp.read()     
#Erstellen eines temporären Ordners
    import tempfile
    with tempfile.TemporaryDirectory() as tmpdir:
        print('Created temporary directory ', tmpdir)
        print(os.path.exists(tmpdir))
#Datei löschen
    os.remove(file)
    #or
    os.unlink(file)
#Lösche Ordner
    os.rmdir(dir)
    #or
    dir = Path('my_documents/bad_dir')
    dir.rmdir()
#Ordnerbaum löschen
    shutil.rmtree(dir_tree)
#Dateikopie
    shutil.copy(src, dst)
    #or
    shutil.copy2(src, dst)#Kopieren Sie die Dateieigenschaften
#Kopie des Ordnerbaums
    dst = shutil.copytree('data', 'databackup')
#Verschieben Sie Dateien und Ordner
    dst = shutil.move('dir/', 'backup/')
#Umbenennen von Dateien und Ordnern
    os.rename('first.zip', 'first_01.zip')
    
#.Suchen Sie die txt-Datei
    #Strings and Character Data in Python
    #https://realpython.com/python-strings/
    #Methode 1
    for f_name in os.listdir('directory'):
        if f_name.endswith('.txt'):
            print(f_name)
    #Methode 2
    import fnmatch
    for f_name in os.listdir('directory'):
        if fnmatch.fnmatch(f_name, 'data_*_2020*.txt'):
            print(f_name)
    #Methode 3
    import glob
    for name in glob.glob('*/*/*[0-9]*.txt'):#Unterordner mit den Zeichen 0-9.Suchen Sie die txt-Datei
        print(name)
        
#Zip-Datei lesen
    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)

#Entpacken Sie die angegebene Datei aus der Zip-Datei
    data_zip = zipfile.ZipFile('data.zip', 'r')
    #data.Datei1 in Zip.Entpacken Sie py in Ihr Arbeitsverzeichnis
    data_zip.extract('file1.py')
    #Entpacke alles in den angegebenen Ordner
    data_zip.extractall(path='extract_dir/')
    #Wenn Sie ein Passwort haben
    data_zip.extractall(path='extract_dir', pwd='password')
    data_zip.close()

#Erstellen und Hinzufügen einer Zip-Datei
    #Erstellen
    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)
    #hinzufügen
    with zipfile.ZipFile('new.zip', 'a') as new_zip:
        new_zip.write('data.txt')
        new_zip.write('latin.txt')

#Tar-Datei lesen
    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()

#Entpacken Sie die angegebene Datei aus der TAR-Datei
    tar = tarfile.open('example.tar', mode='r')
    #In aktuelles Verzeichnis entpacken
    tar.extract('README.md')
    #Entpacke alles in den angegebenen Ordner
    tar.extractall(path="extracted/")
    
#Tar-Datei erstellen und hinzufügen
    #Erstellen
    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)
    #hinzufügen
    with tarfile.open('package.tar', mode='a') as tar:
        tar.add('foo.bar')
    #Bestätigung
    with tarfile.open('package.tar', mode='r') as tar:
        for member in tar.getmembers():
            print(member.name)
            
#shutil.make_archive()Ordnerkomprimierung mit
    import shutil
    #Sichern Sie die Dateien im Datenordner.Zu Teer komprimieren
    shutil.make_archive('data/backup', 'tar', 'data/')
    #Auftauen
    shutil.unpack_archive('backup.tar', 'extract_dir/')
    
#Lesen Sie mehrere Dateien
    #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='')

IT-Memos für Nicht-IT-Branchen

Recommended Posts

Zusammenfassung der Python-Dateivorgänge
Zusammenfassung der Python3-Listenoperationen
[Python] Zusammenfassung der S3-Dateivorgänge mit boto3
Dateioperationen in Python
[Python] Datei- / Verzeichnisoperation
Dateimanipulation mit Python
Zusammenfassung der Zeichenfolgenoperationen
Zusammenfassung der Python-Argumente
[Python3] Grundlegendes zu Dateivorgängen
Zusammenfassung der Excel-Operationen mit OpenPyXL in Python
Python-Zusammenfassung
Python-Zusammenfassung
Dateivorgang
Einfache Verschlüsselung von Dateiinhalten (Python)
Eine kurze Zusammenfassung der Python-Sammlung
Zusammenfassung verschiedener Operationen in Tensorflow
Python-Memo ① Ordner- und Dateivorgänge
ORC, Parkettdateivorgänge in Python
Zusammenfassung der Python-Indizes und -Slices
[OpenCV; Python] Zusammenfassung der Funktion findcontours
Skript-Python-Datei
Zusammenfassung des Python-Tutorials
Überprüfen Sie die Existenz der Datei mit Python
Zusammenfassung verschiedener for-Anweisungen in Python
Python-Dateiverarbeitung
Python-Grundlagen ①
Grundlagen von Python ①
[Python2.7] Zusammenfassung der Verwendung von unittest
Kopie von Python
Zusammenfassung der integrierten Methoden usw. der Python-Liste
Zusammenfassung nützlicher Techniken von Scrapy in Python
Python-bezogene Zusammenfassung
Zusammenfassung der Verwendung der Python-Liste
[Python] Ruft den Zeichencode der Datei ab
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
Zusammenfassung der Achsenoptionsspezifikation von Python "numpy.sum (...)"
Zusammenfassung der Python-Grundlagen
Einführung von Python
Zusammenfassung der häufig mit asyncpg ausgeführten Vorgänge
Zusammenfassung der von Pandas 1 häufig ausgeführten Prozesse (CSV-, Excel-Datei-bezogene Vorgänge)
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Zusammenfassung der Unterschiede zwischen PHP und Python
Zusammenfassung zum Importieren von Dateien in Python 3
[Python] [chardet] Automatische Erkennung von Zeichencode in Dateien
Zusammenfassung der Verwendung von MNIST mit Python
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
[Python] Kapitel 02-01 Grundlagen von Python-Programmen (Operationen und Variablen)
Zusammenfassung häufig verwendeter Python-Arrays (für mich)
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
E / A-bezogene Zusammenfassung von Python und Fortan
Konvertieren Sie den Zeichencode der Datei mit Python3
[Python] Kapitel 02-05 Grundlagen von Python-Programmen (Zeichenfolgenoperationen / -methoden)
Geschwindigkeitsbewertung der Ausgabe von CSV-Dateien in Python
Rufen Sie das Aktualisierungsdatum der Python-Memorandum-Datei ab.
Liste der Python-Module