Naučte se, jak načítat a ukládat data přímo z vaší aplikace JES pomocí tohoto podrobného průvodce.
JES je programovací prostředí, které můžete použít k psaní, testování a spouštění kódu lokálně na vašem počítači. JES nabízí mnoho funkcí, jako je možnost upravovat fotografie, videa nebo jiná média.
V JES můžete také plnit další úkoly, jako je čtení nebo zápis do souborů. Můžete číst data z různých typů souborů, včetně textových souborů a souborů CSV.
Jak číst ze souboru pomocí JES
Úplný zdrojový kód těchto příkladů si můžete prohlédnout a stáhnout z webu úložiště GitHub.
Chcete-li číst soubor v JES, nejprve jej otevřete, poté si přečtěte jeho obsah a uložte jej do proměnné pro další zpracování.
Pokud čtete z textového souboru, můžete každý řádek souboru uložit samostatně jako prvek v poli. Pokud čtete ze souboru CSV, můžete také uložit hodnotu každé buňky samostatně.
- Otevřete v počítači software JES. V okně programování vytvořte novou funkci:
defreadFromFile():
- Pomocí funkce pickAFile() požádejte uživatele o výběr souboru. Můžete snadno najít nápovědu pro vestavěné funkce JES abyste se o nich dozvěděli více.
soubor = pickAFile()
- Ověřte soubor a ujistěte se, že uživatel vybral pouze soubor TXT nebo CSV:
-line soubor.endswith(".txt") ane soubor.endswith(„.csv“):
tisk("Chyba: Podporovány jsou pouze soubory .txt a .csv.")
vrátit se - Otevřete vybraný soubor pomocí funkce open(). Prvním parametrem je soubor, ze kterého čtete. Druhý parametr určuje režim použitý k otevření souboru. Například „rt“ znamená „číst soubor“.
openFile = otevřít (soubor, "rt")
- Zatímco je soubor otevřený, přečtěte si z něj veškerý obsah. Uložte obsah souboru do proměnné:
allContent = openFile.read()
- Zavřete soubor:
openFile.close()
- Proměnná "allContent" obsahuje jeden řetězec, který obsahuje veškerý obsah uvnitř souboru. znak nového řádku (\n) odděluje každý řádek v souboru. Pokud chcete přistupovat ke každému řádku jednotlivě, rozdělte řetězec a uložte každý řádek jako prvek v poli:
-li soubor.endswith(".txt"):
rows = allContent.split("\n")
tisknout (řádky) - Pokud čtete ze souboru CSV, můžete každý řádek dále oddělit, abyste získali hodnotu z každé jednotlivé buňky. Pro každý řádek v souboru CSV oddělte hodnoty čárkou a uložte hodnoty do dvojitého pole. Struktura pole bude vypadat podobně jako tato: [[1,2,3], [4,5,6], [7,8,9]].
-li soubor.endswith(„.csv“):
rows = allContent.split("\n")
csvData = []pro řádek v řádky:
-li (řádek!= ''):
buňky = row.split(",")
csvData.append([float (buňka) pro buňka v buňky])tisknout (csvData)
- Chcete-li program otestovat, vytvořte nový textový soubor s názvem sample.txta naplňte jej nějakým textem:
Toto je začátek souboru
Toto je další řádek
Toto je třetí řádek
Toto je konec souboru - Taky vytvořit soubor CSV, Pojmenuj to čísla.csva naplňte jej některými daty:
- V rozhraní JES klikněte na Načíst program tlačítko, umístěné mezi programovacím oknem a příkazovým řádkem:
- Spusťte funkci readFromFile() na příkazovém řádku:
readFromFile()
- Pomocí výzvy k souboru přejděte na místo, kam jste uložili soubor sample.txt. Vyberte soubor, který chcete otevřít a zobrazit obsah vytištěný na konzole:
- Spusťte znovu funkci readFromFile() na příkazovém řádku. Chcete-li zobrazit obsah vytištěný na konzole, s každou buňkou oddělenou a uloženou v poli, vyberte soubor numbers.csv:
Jak zapisovat do souboru pomocí JES
Pomocí funkce write() můžete zapisovat do CSV nebo textového souboru. Soubor můžete buď otevřít pro připojení nebo zápis. Přidání přidá k existujícímu obsahu, zatímco zápis přepíše jakýkoli existující obsah v souboru.
Vytvořte novou funkci a použijte ji k zápisu do textového souboru a souboru CSV.
- Vytvořte novou funkci s názvem writeToFile():
defwriteToFile():
- Pomocí funkce pickAFile() vyzvěte uživatele, aby vybral soubor:
soubor = pickAFile()
- Otevřete soubor pro připojení:
openFile = otevřít (soubor, "na")
- Případně, pokud chcete přepsat veškerý obsah v souboru, zadejte místo toho jako druhý argument "w":
openFile = otevřít (soubor, "w")
- Zapište do souboru. Chcete-li připojit více řádků, použijte "\n" k oddělení obsahu na řádky nebo znovu použijte funkci write():
-li soubor.endswith(".txt"):
openFile.write("\nTestování")
openFile.write("\nTestování1\nTestování2")
openFile.write("\nTestování3") - Chcete-li zapisovat do souboru CSV, zapište všechna data pro jeden řádek pomocí funkce write() a oddělte hodnoty pro každou buňku čárkou:
-li soubor.endswith(„.csv“):
openFile.write("\n12,34,56") - Po zápisu do souboru zavřete:
openFile.close()
tisk("Úspěšně zapsáno do souboru") - Klikněte na Načíst program tlačítko, umístěné mezi programovacím oknem a příkazovým řádkem.
- Spusťte funkci writeToFile() v příkazovém řádku:
writeToFile()
- Pomocí výzvy k souboru vyberte soubor „sample.txt“. Jakmile JES dokončí zápis do souboru, otevřete soubor „sample.txt“ a zobrazte nové řádky připojené na konec souboru:
- Znovu spusťte funkci writeToFile() na příkazovém řádku. Otevřete soubor "numbers.csv" a zobrazte nové hodnoty buněk připojené na konec souboru.
Čtení a zápis dat souborů pomocí JES
Zápis dat do souboru je mimořádně užitečná funkce, kterou můžete použít, pokud potřebujete uložit nějaká data do programu.
Prozkoumejte další způsoby, jak můžete číst nebo zapisovat do souborů pomocí Pythonu. Mezi příklady patří použití modulů, jako jsou Pandas nebo Openpyxl.