파이썬에서 지우고 싶은 텍스트 파일이 있습니다. 어떻게해야합니까?파이썬에서 텍스트 파일의 파일 내용을 지우는 방법은 무엇입니까?
답변
는 C++에서
f = open('file.txt', 'r+')
f.truncate()
을, 당신은 비슷한 사용할 수 있습니다.
'#include
쓰기가 가능하도록 파일을 열 때 기본적으로 기존 내용이 잘 리기 때문에 (C++ 및 Python에서 모두 작동하는 이유는 기본적으로). 그래서 정말 일종의 부작용이고, 따라서 불필요한 경우에도 명확성을 위해 truncate()를 명시 적으로 호출하는 것을 선호합니다. – rmeador
+1 "이미 열린 파일 인 경우" – lajarre
텍스트 파일은 순차적이므로 텍스트 파일은 직접 지울 수 없습니다. 선택할 수있는 옵션은 다음과 같습니다.
- 가장 일반적인 방법은 새 파일을 만드는 것입니다. 원본 파일을 읽고 지우려는 부분을 제외한 모든 부분을 새 파일에 씁니다. 모든 파일이 작성되면 이전 파일을 삭제하고 새 파일의 이름을 원래 이름으로 바꿉니다.
- 앞으로 변경하려는 지점에서 전체 파일을 자르고 다시 쓸 수도 있습니다. 변경할 지점을 찾고 파일의 나머지 부분을 메모리로 읽습니다. 같은 지점으로 다시 검색하고, 파일을 자르고, 지울 부분이없는 내용을 다시 쓸 수 있습니다.
- 또 다른 간단한 옵션은 동일한 길이의 다른 데이터로 데이터를 덮어 쓰는 것입니다. 이를 위해 정확한 위치를 찾고 새 데이터를 작성하십시오. 한계는 정확히 같은 길이를 가져야한다는 것입니다.
seek
/truncate
기능/방법을 참조하여 위의 아이디어를 구현하십시오. 파이썬과 C 모두 이러한 기능을 가지고 있습니다.
끝 부분을 지워야하는 경우가 아니면 내 처 파일에서 "지우기"할 수 없습니다. "비어있는"값을 덮어 쓰는 것에 만족하거나 관심있는 파일의 일부를 읽고 다른 파일에 쓰십시오. 이미 열려있는 파일이있는 경우
open('file.txt', 'w').close()
또는 대안 : 파이썬에서
프로그램 내에서 null로 파일 포인터를 지정하면 파일에 대한 참조가 제거됩니다. 파일은 아직 남아 있습니다. 제 생각에는 remove()
의 기능이 stdio.h
인 것 같습니다. 파이썬에 대해서는 잘 모르겠습니다.
또는 unistd.h에서 unlink()를 사용하십시오. – Void
BTW, remove() 및 unlink()는 일반 파일의 참조 횟수를 줄이고 실제로 삭제하지는 않습니다. 참조 횟수가 0이되면 파일이 지워집니다. 예를 들어 프로세스에 파일이 열려 있고 unlink() 또는 remove()를 호출하면 파일이 close() d가 될 때까지 삭제되지 않습니다 (즉, 참조 횟수가 0으로 떨어짐 - 다른 프로세스가 없다고 가정) 파일을 열어 두십시오). 이 동작은 예를 들어 비정상적인 프로세스 종료 (예 : open(), unlink(), 파일 IO 수행, ** CRASH **, close() NOT 호출) 후에 임시 파일이 남지 않도록하는 데 유용합니다. – Void
파일을 덮어 써야합니다. C++에서 :
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
이것은 C++에 유용합니다 :) – Natim
'close()'호출이 필요 없습니다. 소멸자가 파일을 닫습니다. 그래서 임시 파일을 만들어야합니다 : ofstream ("test.txt");' – wilhelmtell
파이썬과 C++에서 원래의 질문에 대해 물어볼 때까지 나는 혼란스러워했습니다. – user1717828
온 드라의 대답
하지 완전한 대답 확장을 더 truncate()
(내 선호하는 방법)를 사용하여 커서를 원하는 위치에 있는지 확인합니다. 새 파일을 열어 읽을 때 - open('FILE_NAME','r')
커서는 기본적으로 0입니다. 코드에서 파일을 구문 분석 한 경우 파일 시작 부분을 다시 가리켜 야합니다. 즉 truncate(0)
기본적으로 truncate()
은 현재 cusror 위치에서 시작하여 파일의 내용을 잘라냅니다.사용자의
는 open("filename","w").close()
의 또 다른 형태는
with open('filename.txt','w'): pass
with open("myfile.txt", "r+") as my_file:
를 사용하여, 내가 먼저 파일을 읽고있다, 특히 이후 myfile.txt
에 이상한 0을 얻을 수있다 @jamylak. 작동하려면 우선 포인터 을 my_file.seek(0)
과 함께 파일의 시작 부분으로 변경해야했습니다. 그런 다음 my_file.truncate()
을 수행하여 파일을 지울 수있었습니다.
- 1. 텍스트 파일의 내용을 javascript 변수로로드하는 방법은 무엇입니까? ..
- 2. VB에서 CSV 파일의 내용을 지우는 방법
- 3. 추가 내용을 지우는 Jquery
- 4. a.out 파일의 내용을 보는 방법은 무엇입니까?
- 5. url에서 xml 파일의 내용을 문자열로로드하는 방법은 무엇입니까?
- 6. 텍스트 파일 내용을 다른 텍스트 파일로 복사
- 7. Java로 tar.gz 파일의 내용을 인쇄하는 방법은 무엇입니까?
- 8. 파이썬에서 텍스트 파일 구문 분석
- 9. 파이썬에서 파일에서 라인을 지우는 법
- 10. NSMutableData에서 내용을 지우는 방법
- 11. TextWriter를 사용하여 텍스트 파일의 내용을 지우십시오. C#
- 12. 삭제하지 않고 텍스트 파일의 내용을 삭제하는 방법
- 13. 파일의 내용을 UITextView에 업로드하는 방법은 무엇입니까?
- 14. zip 파일 내용을 읽는 방법은 무엇입니까?
- 15. ASP.NET DataGrid를 지우는 방법은 무엇입니까?
- 16. 파일 내용을 사용하는 파일 형식
- 17. 대용량 파일의 내용을 표시하는 Winform
- 18. PHP로 파일의 일부분을 지우는 것
- 19. PostgreSQL 데이터베이스에서 텍스트 파일의 데이터를로드하는 방법은 무엇입니까?
- 20. ASP.NET 페이지에서 텍스트 파일 내용을 인라인으로 출력합니다.
- 21. 파일 탐색기에서 파일 경로 기록을 지우는 방법은 무엇입니까?
- 22. JSP 페이지에 텍스트 파일의 내용을 표시하는 방법
- 23. Flex3 : 포함 된 텍스트 파일의 내용을 변수로로드
- 24. 두 거대한 텍스트 파일의 내용을 빠르게 비교합니다.
- 25. 어떻게 PHP에서 텍스트 파일의 내용을 제거 할
- 26. PHP의 텍스트 영역에 문서 파일의 내용을 표시
- 27. 파일 무게와 텍스트 파일의 줄 수는? (C#)
- 28. web.config에서 단어 파일 및 텍스트 파일의 확장자를 지정하는 방법은 무엇입니까?
- 29. .NET에서 파일의 읽기 전용 플래그를 지우는 방법은 무엇입니까?
- 30. Jquery를 사용하여 html 입력 텍스트 필드의 내용을 지우는 방법
Python _and_ C++? 왜? 당신은 하나에서 그것을 할 수 있고 당신은 다른 사람에게서 그것을 할 수 있습니다 - 그러나 선택이 주어진다면 그것은 파이썬으로 훨씬 더 쉽게 될 것입니다. – wilhelmtell
답변을 주신 분은 가능하지 않다고 말씀 하셨으며, 파이썬으로 쉽게 할 수있는 방법을 알려주시겠습니까? – Hick