GNU/Linux >> Belajar Linux >  >> Linux

open() dengan Python tidak membuat file jika tidak ada

Anda harus menggunakan open dengan w+ modus:

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

Keuntungan dari pendekatan berikut adalah file ditutup dengan benar di ujung blok, bahkan jika pengecualian dimunculkan di jalan. Ini setara dengan try-finally , tetapi jauh lebih pendek.

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

a+ Membuka file untuk ditambahkan dan dibaca. Penunjuk file ada di akhir file jika file tersebut ada. File terbuka dalam mode tambahkan. Jika file tidak ada, itu membuat file baru untuk membaca dan menulis. -Mode file Python

metode seek() menyetel posisi file saat ini.

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

Hanya karakter "rwab+" yang diperbolehkan; pasti ada salah satu dari "rwa" - lihat pertanyaan Stack Overflow detail mode file Python .


Praktik yang baik adalah menggunakan yang berikut ini:

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. File metadata tidak cocok dengan checksum – kesalahan YUM!

  2. Apa itu Exec 3?

  3. file:perintah tidak ditemukan

  1. Linux:salin dan buat dir tujuan jika tidak ada

  2. C fopen vs terbuka

  3. Menambahkan baris ke file hanya jika belum ada

  1. Bagaimana cara membuat file hanya jika tidak ada?

  2. atom buat file jika tidak ada dari skrip bash

  3. Perintah sed Linux tidak mengubah file target