Saya memiliki file teks yang ingin saya hapus dengan Python. Bagaimana aku melakukan itu?
Saya memiliki file teks yang ingin saya hapus dengan Python. Bagaimana aku melakukan itu?
Jawaban:
Dengan python:
open('file.txt', 'w').close()
Atau sebagai alternatif, jika Anda sudah membuka file:
f = open('file.txt', 'r+')
f.truncate(0) # need '0' when using r+
Di C ++, Anda bisa menggunakan sesuatu yang serupa.
#include<fstream>dan kemudian std::ofstream("file.txt");sesingkat dalam Python. :)
f.seek(0)setelah f.truncate(0), lain Anda akan memiliki aneh \ x00 ditambahkan pada awal file.
Bukan jawaban yang lengkap dari ekstensi untuk jawaban ondra
Saat menggunakan truncate()(metode pilihan saya) pastikan kursor Anda pada posisi yang diperlukan. Ketika file baru dibuka untuk dibaca - open('FILE_NAME','r')kursornya adalah 0 secara default. Tetapi jika Anda telah mem-parsing file di dalam kode Anda, pastikan untuk menunjuk pada awal file lagi yaitu truncate(0)
secara default truncate()memotong isi file mulai dari posisi cusror saat ini.
Membuka file dalam mode "tulis" mengosongkannya, Anda tidak perlu secara khusus menulisnya:
open("filename", "w").close()
(Anda harus menutupnya sebagai waktu kapan file akan ditutup secara otomatis mungkin spesifik untuk implementasi)
Dari user @jamylak bentuk alternatif open("filename","w").close()is
with open('filename.txt','w'): pass
Saat menggunakan with open("myfile.txt", "r+") as my_file:, saya mendapatkan nol aneh myfile.txt, terutama karena saya membaca file terlebih dahulu. Agar berfungsi, saya harus terlebih dahulu mengubah pointer my_fileke awal file dengan my_file.seek(0). Maka saya bisa lakukan my_file.truncate()untuk menghapus file.
Anda harus menimpa file. Dalam C ++:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
close()menelepon. Destructor akan menutup file. Jadi, Anda hanya perlu membuat sementara:ofstream("test.txt");
Menetapkan file pointer ke nol di dalam program Anda hanya akan menyingkirkan referensi ke file tersebut. File itu masih ada di sana. Saya pikir remove()fungsi dalam c stdio.hadalah apa yang Anda cari di sana. Tidak yakin tentang Python.
Jika keamanan penting bagi Anda maka membuka file untuk menulis dan menutupnya lagi tidak akan cukup. Setidaknya beberapa informasi masih ada di perangkat penyimpanan dan dapat ditemukan, misalnya, dengan menggunakan utilitas pemulihan disk.
Misalkan, misalnya, file yang Anda hapus berisi kata sandi produksi dan perlu segera dihapus setelah operasi ini selesai.
Mengisi nol file setelah Anda selesai menggunakannya membantu memastikan informasi sensitif dihancurkan.
Pada proyek terbaru kami menggunakan kode berikut, yang bekerja dengan baik untuk file teks kecil. Ini menimpa konten yang ada dengan garis nol.
import os
def destroy_password_file(password_filename):
with open(password_filename) as password_file:
text = password_file.read()
lentext = len(text)
zero_fill_line_length = 40
zero_fill = ['0' * zero_fill_line_length
for _
in range(lentext // zero_fill_line_length + 1)]
zero_fill = os.linesep.join(zero_fill)
with open(password_filename, 'w') as password_file:
password_file.write(zero_fill)
Perhatikan bahwa pengisian nol tidak akan menjamin keamanan Anda. Jika Anda benar-benar khawatir, Anda sebaiknya mengisi nol dan menggunakan utilitas khusus seperti File Shredder atau CCleaner untuk membersihkan ruang kosong di drive Anda.
Anda tidak dapat "menghapus" dari file di tempat kecuali Anda harus menghapus akhirnya. Entah puas dengan menimpa nilai "kosong", atau baca bagian file yang Anda pedulikan dan tuliskan ke file lain.
Karena file teks berurutan, Anda tidak dapat menghapus data secara langsung. Pilihan Anda adalah:
Lihatlah seek/ truncatefungsi / metode untuk mengimplementasikan ide-ide di atas. Baik Python dan C memiliki fungsi-fungsi itu.
os.removeatau os.unlinkdengan python, atau unlinkdalam C. Opsi lain adalah membuka kembali file untuk ditulis atau digunakan truncate.
Menulis dan Membaca konten file
def writeTempFile(text = ''):
filePath = "/temp/file1.txt"
if not text: # If blank return file content
f = open(filePath, "r")
slug = f.read()
return slug
else:
f = open(filePath, "a") # Create a blank file
f.seek(0) # sets point at the beginning of the file
f.truncate() # Clear previous content
f.write(text) # Write file
f.close() # Close file
return text
Ini berhasil untuk saya
Anda juga dapat menggunakan ini (berdasarkan beberapa jawaban di atas):
file = open('filename.txt', 'w')
file.write('')
file.close
tentu saja ini adalah cara yang sangat buruk untuk menghapus file karena membutuhkan begitu banyak baris kode, tetapi saya hanya menulis ini untuk menunjukkan kepada Anda bahwa itu dapat dilakukan dalam metode ini juga.
selamat coding!