2017-11-14 2 views
-1

이 질문에 답을 얻었습니다. 그래도 대답은 내 상황이나 내가 성취하려는 것을 선호하지 않습니다.Python 3+ 텍스트 파일에서 행을 편집하는 방법

업데이트해야 할 텍스트 파일이 100 개 있습니다. 각 파일에서 동일한 한 줄을 업데이트해야합니다. 텍스트 파일을 열고 한 줄만 수정하고 싶습니다. write() 또는 writelines()를 사용하여 텍스트 파일을 다시 쓰고 싶지 않습니다. 필자는 fileinput.input()도 print 문을 사용하여 텍스트 파일을 다시 쓰고 있기 때문에 사용하고 싶지 않습니다.

파일에 수천 개의 중요한 데이터가 포함되어있어 파일에서 파이썬이 모든 것을 올바르게 다시 만들 수 없다고 믿을 수 없습니다. 꼬리말이 아닌 중요도가 높은 여러 줄이 있는데 그 중 내가 업데이트하는 줄이 있습니다.

어떻게 파일을 다시 만들지 않고 텍스트 파일의 한 줄을 업데이트 할 수 있습니까? 텍스트에 한 줄을 추가 할 수 있어야합니다. 사전

+1

줄의 앞뒤 길이가 똑같은가요? – SethMMorton

+1

파일을 다시 작성하는 것이 제 위치에서 수정하는 것보다 안전합니다. 두 파일에서 중요한 데이터가 동일한 지 확인할 수도 있습니다. – pvg

+1

파일의 문자는 명확한 위치를 가진 바이트입니다. 파일 중간에 내용을 삽입하는 경우 기존 내용을 덮어 쓰거나 다음 바이트마다 새 위치로 이동해야합니다. 나는 당신의 진술을 이해하지 못한다. "나는 파이썬이 모든 것을 정확하게 재현 할 것이라고 믿을 수 없다."물론 당신은 할 수있다. 왜 이것이 문제가 될지 모르겠다. – sytech

답변

-1

에서

덕분에 나는이 파일 레벨에서 모든 프로그래밍 언어에서 가능하다고 생각하지 않습니다. 파일은 단순히 그렇게 작동하지 않습니다. 특히 중간에 다른 길이의 데이터로 대체 할 가능성이 높은 텍스트 기반 파일이 그 예입니다. 원시 디스크 레벨 액세스가 필요합니다 (이 작업은 어리석게 어려운 문제입니다).

당신이 정말로 그것을 추구하고 싶다면, 여기에 원시 디스크 질문 확인 : 그렇다하더라도

Is it possible to get writing access to raw devices using python with windows?

을 : 나는 데이터의 적어도 전체 블록에서 읽을 수 몇 가지 수준의 확신 드라이브 및 다시 쓴 (이것은 육체적으로 드라이브가 어떻게 작동 하는지를 기억합니다).

관련 문제