GNU/Linux >> Znalost Linux >  >> Linux

open() v Pythonu nevytvoří soubor, pokud neexistuje

Měli byste použít open s w+ režim:

file = open('myfile.dat', 'w+')

Výhodou následujícího přístupu je, že soubor je správně uzavřen na konci bloku, i když je na cestě vyvolána výjimka. Je ekvivalentní try-finally , ale mnohem kratší.

with open("file.dat","a+") as f:
    f.write(...)
    ...

a+ Otevře soubor pro připojení i čtení. Ukazatel na soubor je na konci souboru, pokud soubor existuje. Soubor se otevře v režimu připojení. Pokud soubor neexistuje, vytvoří nový soubor pro čtení a zápis. -Režimy souborů Python

Metoda seek() nastaví aktuální pozici souboru.

f.seek(pos [, (0|1|2)])
pos .. position of the r/w pointer
[] .. optionally
() .. one of ->
  0 .. absolute position
  1 .. relative position to current
  2 .. relative position from end

Jsou povoleny pouze znaky "rwab+"; musí tam být přesně jedno z "rwa" - viz otázka Stack Overflow Podrobnosti o režimech souborů Python .


Osvědčeným postupem je použít následující:

import os

writepath = 'some/path/to/file.txt'

mode = 'a' if os.path.exists(writepath) else 'w'
with open(writepath, mode) as f:
    f.write('Hello, world!\n')

Linux
  1. piwik:Nelze otevřít vstupní soubor:./console

  2. Co dělá Exec 3?

  3. Vytvořte odkládací soubor Linuxu

  1. Linux:zkopírujte a vytvořte cílový adresář, pokud neexistuje

  2. C fopen vs open

  3. Jak určit editor pro otevření souboru crontab? export EDITOR=vi nefunguje

  1. Jak vytvořit soubor, pouze pokud neexistuje?

  2. atomic create soubor, pokud neexistuje z bash skriptu

  3. Příkaz sed pro Linux nemění cílový soubor