programing

Python에서 텍스트 파일의 파일 내용을 지우려면 어떻게 해야 하나요?

goodjava 2022. 10. 31. 21:14

Python에서 텍스트 파일의 파일 내용을 지우려면 어떻게 해야 하나요?

Python에서 지우고 싶은 텍스트 파일이 있습니다.그걸 어떻게 하는 거죠?

python:

open('file.txt', 'w').close()

또는 이미 열려 있는 파일이 있는 경우:

f = open('file.txt', 'r+')
f.truncate(0) # need '0' when using r+

"write" 모드에서 파일을 열면 파일이 지워집니다. 특별히 파일에 쓸 필요는 없습니다.

open("filename", "w").close()

(파일이 자동으로 닫히는 타이밍은 구현에 따라 다를 수 있으므로 닫아야 합니다.)

완전한 답변이 아니라 Ondra의 답변의 연장선상에 있다.

「」를 사용하고 truncate()(제가 선호하는 방법) 커서가 필요한 위치에 있는지 확인합니다. 새 때 - 는 것을 의미합니다.open('FILE_NAME','r')0으로 하다코드 내에서 분석했다면 . 파일의 선두를 다시 가리켜야 합니다.truncate(0)로는 " " 입니다.truncate()는, 현재의 커스터마이즈 위치에서 시작되는 파일의 내용을 잘라냅니다.

간단한 예

@jamylak이 제안했듯이 컨텍스트 매니저의 이점을 포함하는 좋은 대안은 다음과 같습니다.

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()파일을 클리어합니다.

보안이 중요한 경우 파일을 열고 다시 닫는 것만으로는 충분하지 않습니다.적어도 일부 정보는 저장 장치에 남아 있으며 디스크 복구 유틸리티를 사용하여 찾을 수 있습니다.

예를 들어 지우려는 파일에 프로덕션 암호가 포함되어 있으며 현재 작업이 완료된 후 즉시 삭제해야 한다고 가정합니다.

파일을 사용한 후 파일을 0으로 채우면 중요한 정보가 파괴됩니다.

최근 프로젝트에서는 작은 텍스트 파일에 적합한 다음 코드를 사용했습니다.기존 내용을 0 행으로 덮어씁니다.

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)

0이 채워진다고 해서 보안이 보장되는 것은 아닙니다.정말로 걱정되는 경우, 0으로 채우고 File Shreder 또는 CCleaner같은 전문 유틸리티를 사용하여 드라이브의 '빈' 공간을 지우는 것이 가장 좋습니다.

파일 내용 쓰기 및 읽기

def writeTempFile(text = None):
    filePath = "/temp/file1.txt"
    if not text:                      # If not provided 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

그것은 나에게 효과가 있었다.

파일을 덮어써야 합니다.C++의 경우:

#include <fstream>

std::ofstream("test.txt", std::ios::out).close();

위의 답변 중 몇 가지에 근거해, 이것을 사용할 수도 있습니다.

file = open('filename.txt', 'w')
file.close()

물론 파일 클리어에는 많은 코드 행이 필요하기 때문에 매우 좋지 않은 방법이지만, 이 방법에서도 할 수 있다는 것을 보여주기 위해 이 글을 썼습니다.

해피 코딩!

끝을 지울 필요가 없는 한 파일 내에서 "삭제"할 수 없습니다."빈" 값의 덮어쓰기로 만족하거나 관심 있는 파일의 일부를 읽고 다른 파일에 쓰십시오.

프로그램 내에서 파일 포인터를 null에 할당하면 파일에 대한 참조가 제거됩니다.그 파일은 아직 거기에 있어제가 봤을 때remove()c에서 기능하다stdio.h당신이 찾고 있는 게 그거에요Python은 잘 모르겠어요.

텍스트 파일은 순차적이므로 해당 파일의 데이터를 직접 지울 수 없습니다.옵션은 다음과 같습니다.

  • 가장 일반적인 방법은 새 파일을 만드는 것입니다.원본 파일에서 읽고 지울 부분을 제외한 모든 내용을 새 파일에 씁니다.모든 파일이 작성되면 오래된 파일을 삭제하고 새 파일의 이름을 원래 이름으로 변경합니다.
  • 변경할 시점부터 파일 전체를 잘라낼 수도 있습니다.변경할 포인트를 찾고 나머지 파일을 메모리로 읽습니다.같은 지점으로 돌아가서 파일을 잘라낸 다음 지울 부분을 제외하고 내용을 다시 씁니다.
  • 또 다른 간단한 옵션은 같은 길이의 다른 데이터로 데이터를 덮어쓰는 것입니다.이를 위해 정확한 위치를 찾아 새로운 데이터를 작성한다.제한은 길이가 완전히 같아야 한다는 것입니다.

를 봐주세요.seek/truncate위의 아이디어를 구현하기 위한 기능/기능을 수행합니다.Python과 C는 모두 이러한 기능을 가지고 있습니다.

언급URL : https://stackoverflow.com/questions/2769061/how-to-erase-the-file-contents-of-text-file-in-python