11. Python – pliki


import datetime

import os

sciezka_relatywna = os.getcwd()

print(f"Ścieżka do bieżącego katalogu(relatywna): {sciezka_relatywna}")

sciezka_absolutna = "C:/xampp/htdocs/zajecia/Python/"

print(f"Ścieżka do wskazanego katalogu(absolutna): {sciezka_absolutna}")

# Pobranie listy pliku we wskazanym katalogu

katalogi_i_pliki_biezacy = os.listdir(sciezka_relatywna) #tak też można: katalogi_i_pliki = os.listdir()

print(f"lista plików we wskazanym katalogu: {katalogi_i_pliki_biezacy}")

katalogi_i_pliki_nadrzedne = os.listdir('..')

print(f"lista plików w nadrzędnym katalogu: {katalogi_i_pliki_nadrzedne}")

katalog_domowy = os.path.expanduser('~')

print(f"Katalog domowy: {katalog_domowy}")

file = "plik.txt"

#odczytujemy cały plik

with open(file, 'r') as odczyt:

    print(f"Odczyt całego pliku: {odczyt.read()}")

   

   

#zapisujemy dane do pliku - jeżeli plik nie istnieje zostaje stworzony (nadpisuje zawartość)

with open("new_file.txt", 'w') as zapis:

    zapis.write("Nowo zapisane dane.\n")

with open("new_file.txt", 'r') as odczyt_w:

    print(f"Odczyt nowego pliku: {odczyt_w.read()}")

   

   

#dodajemy dane do pliku

with open("plik.txt", 'a') as dodaj:

    dodaj.write(f"Nowo dodane dane ({datetime.datetime.now()})\n")

   

with open("plik.txt", 'r') as odczyt_a:

    dane = odczyt_a.read() #możemy wyciąć kawałek: odczyt_a.read(100)

    print(f"Odczyt nowego pliku: {dane}")

    print(dane[:18]) #możemy ograniczać odczyt

    nowe_dane = odczyt_a.read()

    print("Nowe dane:", nowe_dane) #nic się nie wyświetli, bo raz odczytany plik nie może zostać w tym samym otwarciu odczytany

   

   

#odczyt linijka po linijce

with open("plik.txt", 'r') as lines:

    linie = lines.readlines()

    print(type(linie)) #zobaczymy, że mamy listę

    for line in linie:

        print(line.rstrip()) #obcinamy enter na końcu

        if "11:56:33" in line: print("tadammm")

       

       

#kilka plików na raz

with open('plik.txt', 'r') as reader, open('new_file.txt', 'w') as writer:

    text = reader.read()

    writer.write(text)