जवाबों:
अजगर में:
open('file.txt', 'w').close()
या वैकल्पिक रूप से, यदि आपके पास पहले से कोई खुली हुई फ़ाइल है:
f = open('file.txt', 'r+')
f.truncate(0) # need '0' when using r+
C ++ में, आप कुछ इसी तरह का उपयोग कर सकते हैं।
#include<fstream>और फिर std::ofstream("file.txt");पायथन में जितना छोटा था। :)
f.seek(0)बाद में जोड़ना न भूलें f.truncate(0), अन्यथा आपके पास फ़ाइल के शुरू में अजीब \ x00 होगा।
एक पूर्ण उत्तर नहीं है जो कि ओंद्रा के उत्तर के विस्तार का अधिक है
उपयोग करते समय truncate()(मेरी पसंदीदा विधि) सुनिश्चित करें कि आपका कर्सर आवश्यक स्थान पर है। जब एक नई फ़ाइल पढ़ने के लिए खोली जाती है - open('FILE_NAME','r')यह कर्सर डिफ़ॉल्ट रूप से 0 पर होता है। लेकिन अगर आपने फ़ाइल को अपने कोड में पार्स कर दिया है, तो फ़ाइल की शुरुआत में फिर से इंगित करना सुनिश्चित करें अर्थात truncate(0)
डिफ़ॉल्ट रूप truncate()से वर्तमान क्यूसर स्थिति से शुरू होने वाली फ़ाइल की सामग्री को काट देता है।
उपयोगकर्ता @jamylak का एक वैकल्पिक रूप open("filename","w").close()है
with open('filename.txt','w'): pass
उपयोग करते समय with open("myfile.txt", "r+") as my_file:, मुझे अजीब शून्य मिलते हैं myfile.txt, खासकर जब से मैं पहली बार फ़ाइल पढ़ रहा हूं। इसे काम करने के लिए, मुझे सबसे पहले my_fileफ़ाइल की शुरुआत के साथ पॉइंटर को बदलना होगा my_file.seek(0)। तब मैं my_file.truncate()फ़ाइल को खाली करने के लिए कर सकता था ।
आपको फ़ाइल को अधिलेखित करना होगा। C ++ में:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
close()कॉल की कोई आवश्यकता नहीं है । विध्वंसक फ़ाइल को बंद कर देगा। तो आपको बस एक अस्थायी बनाने की आवश्यकता है:ofstream("test.txt");
फ़ाइल पॉइंटर को आपके प्रोग्राम के अंदर नल करने के लिए असाइन करने से फ़ाइल के संदर्भ से छुटकारा मिल जाएगा। फ़ाइल अभी भी वहाँ है। मुझे लगता है कि remove()सी में फ़ंक्शन stdio.hवही है जो आप वहां खोज रहे हैं। अजगर के बारे में निश्चित नहीं है।
यदि आपके लिए सुरक्षा महत्वपूर्ण है, तो फ़ाइल को लिखने और फिर से बंद करने के लिए खोलना पर्याप्त नहीं होगा। कम से कम कुछ जानकारी अभी भी संग्रहण डिवाइस पर होगी और उदाहरण के लिए, डिस्क रिकवरी उपयोगिता का उपयोग करके पाया जा सकता है।
मान लीजिए, उदाहरण के लिए, आप जिस फ़ाइल को मिटा रहे हैं, उसमें उत्पादन पासवर्ड शामिल हैं और वर्तमान ऑपरेशन पूरा होने के तुरंत बाद हटा दिया जाना चाहिए।
एक बार आपके द्वारा उपयोग किए जाने के बाद फ़ाइल को जीरो-फिलिंग करने से संवेदनशील जानकारी नष्ट हो जाने को सुनिश्चित करने में मदद मिलती है।
हाल ही के एक प्रोजेक्ट पर हमने निम्न कोड का उपयोग किया, जो छोटे पाठ फ़ाइलों के लिए अच्छी तरह से काम करता है। यह शून्य की पंक्तियों के साथ मौजूदा सामग्रियों को ओवरराइट करता है।
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)
ध्यान दें कि शून्य-भरना आपकी सुरक्षा की गारंटी नहीं देगा। यदि आप वास्तव में चिंतित हैं, तो आप अपने ड्राइव पर 'खाली' स्थान को साफ करने के लिए फाइल श्रेडर या CCleaner जैसी विशेषज्ञ उपयोगिता का उपयोग शून्य-भरण और उपयोग करना सबसे अच्छा होगा ।
जब तक आपको अंत को मिटाने की आवश्यकता नहीं होती है, तब तक आप किसी फ़ाइल में जगह से "मिटा" नहीं सकते। या तो एक "खाली" मान के ओवरराइट के साथ सामग्री हो, या जिस फ़ाइल की आप परवाह करते हैं उसके हिस्सों को पढ़ें और इसे किसी अन्य फ़ाइल पर लिखें।
चूंकि पाठ फाइलें अनुक्रमिक हैं, आप सीधे उन पर डेटा मिटा नहीं सकते। आपके विकल्प हैं:
उपरोक्त किसी भी विचार को लागू करने के लिए seek/ truncateफ़ंक्शन / विधि को देखें। पायथन और सी दोनों के कार्य हैं।
os.removeया os.unlinkअजगर में, या unlinkसी में एक अन्य विकल्प सिर्फ लेखन या उपयोग के लिए फ़ाइल को फिर से खोलने के लिए है truncate।
लेखन और फ़ाइल सामग्री पढ़ना
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
इसने मेरे लिए काम किया
आप इसका उपयोग भी कर सकते हैं (उपरोक्त कुछ उत्तर के आधार पर):
file = open('filename.txt', 'w')
file.write('')
file.close
बेशक यह एक फ़ाइल को साफ़ करने का एक बहुत बुरा तरीका है क्योंकि इसके लिए कोड की बहुत सारी लाइनों की आवश्यकता होती है, लेकिन मैंने आपको यह दिखाने के लिए लिखा है कि यह इस तरीके से भी किया जा सकता है।
खुश कोडिंग!