logo

Python připojit k souboru

Při čtení nebo zápisu do souboru režim přístupu řídí typ operací, které jsou možné s otevřeným souborem. Odkazuje na to, jak bude soubor použit po jeho otevření. Tyto režimy také definují umístění úchytu souboru v souboru. Definice těchto přístupových režimů je následující:

    Pouze připojit („a“): Otevřete soubor pro zápis. Připojit a přečíst (‚a+‘): Otevřete soubor pro čtení a zápis.

Když je soubor otevřen v režimu připojení v Pythonu, je úchyt umístěn na konci souboru. Zapisovaná data budou vložena na konec, za existující data.



Příklad 1: Program Python pro ilustraci režimu Append vs.

Python3

abeceda s čísly








file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)># append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)># write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.read())> print>()> file1.close()>

>

>

Výstup:

Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>

Příklad 2: Připojit data z nového řádku

Ve výše uvedeném příkladu zpracování souborů , je vidět, že data nejsou připojena z nového řádku. To lze provést zapsáním znaku nového řádku ‚ ‘ do souboru.

Python3




# Python program to illustrate> # append from new line> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> # append mode> file1>=> open>(>'myfile.txt'>,>'a'>)> # writing newline character> file1.write(>' '>)> file1.write(>'Today'>)> # without newline character> file1.write(>'Tomorrow'>)> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()>

>

>

Výstup:

Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>

Poznámka: „ “ je považováno za speciální znak o dvou bajtech.

Příklad 3: Použití příkazu With v Pythonu

s prohlášením se používá při zpracování výjimek, aby byl kód čistší a mnohem čitelnější. Zjednodušuje správu běžných zdrojů, jako jsou datové proudy souborů. Na rozdíl od výše uvedených implementací není potřeba volat file.close() při použití s ​​příkazem. Samotný příkaz with zajišťuje řádné získání a uvolnění zdrojů.

Python3




javascript tutoriál

# Program to show various ways to> # append data to a file using> # with statement> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # Writing to file> with>open>(>'myfile.txt'>,>'w'>) as file1:> ># Writing data to a file> >file1.write(>'Hello '>)> >file1.writelines(L)> # Appending to file> with>open>(>'myfile.txt'>,>'a'>) as file1:> >file1.write(>'Today'>)> # Reading from file> with>open>(>'myfile.txt'>,>'r+'>) as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Výstup:

Hello This is Delhi This is Paris This is London Today>

Poznámka: Chcete-li vědět více o s prohlášením klikněte zde .

Použití modulu Shutil:

Tento přístup používá metodu Shutil.copyfileobj() k připojení obsahu jiného souboru (zdrojový_soubor) k souboru „file.txt“. To může být užitečné, pokud chcete připojit obsah jednoho souboru k druhému, aniž byste museli nejprve načíst obsah do paměti.

Přístup:
Kód používá funkci Shutil.copyfileobj() ke zkopírování obsahu objektu source_file do nového souboru s názvem file.txt. Příkaz with se používá k otevření a automatickému zavření souboru pomocí objektu file f.

Časová náročnost:
Časová složitost funkce Shutil.copyfileobj() je úměrná velikosti kopírovaného souboru, protože potřebuje číst a zapisovat každý bajt souboru. Časová složitost kódu je tedy O(n), kde n je velikost zdrojového_souboru.

jak převést celé číslo na řetězec v java

Prostorová složitost:
Prostorová složitost kódu je O(1), protože nepřiděluje žádnou další paměť nad rámec toho, co je vyžadováno pro souborové objekty source_file af. Funkce shutil.copyfileobj() zkopíruje obsah souboru po kouscích, takže není nutné načítat celý soubor do paměti najednou.

Celkově má ​​kód lineární časovou složitost a konstantní prostorovou složitost, kde je časová složitost úměrná velikosti kopírovaného souboru.

Python3




import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)>

>

>