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
'programing' 카테고리의 다른 글
| (서드파티 라이브러리를 사용하지 않고) Node.js로 파일을 다운로드하는 방법 (0) | 2022.10.31 |
|---|---|
| 설치 스크립트가 종료되어 오류: 'x86_64-linux-syslog-gcc' 명령이 실패했으며 종료 상태가 1입니다. (0) | 2022.10.31 |
| Java에서 pass by reference와 동등한 작업을 수행하는 방법 (0) | 2022.10.23 |
| MySQL 쿼리 실행을 중지하려면 어떻게 해야 합니까? (0) | 2022.10.23 |
| TypeScript, 사전을 통한 루프 (0) | 2022.10.23 |