나는 파일의 끝까지 한 줄의 쓰레드를 만들고, 파일의 시작부터 다른 쓰레드를 읽길 바랬다. 읽은 내용을 삭제하십시오. 프로그램이 끝나면 중단 된 부분을 선택할 수 있도록 파일에 있어야합니다. 문제는 첫 번째 줄을 삭제 한 다음 파일을 새로 고치는 방법을 모르겠다는 것입니다.파이썬 하나의 쓰레드는 파일의 끝 부분에 쓰고 다른 쓰레드는 파일의 처음부터 읽는다.
0
A
답변
1
파일이 그렇게 작동하지 않습니다. 파일을 읽거나 쓸 수는 있지만 파일에서 첫 번째 행을 쉽게 삭제할 수는 없습니다. 파일의 시작 부분으로 가서 두 번째 및 이후 줄의 데이터로 덮어 쓰고 마지막에 잘라냅니다.
더 나은 대안은 모듈의 행 목록을 유지하는 것입니다. 해당 모듈에서 두 개의 함수를 정의하십시오.
- 목록의 끝에 행을 추가하려면 (
append
메서드 사용) 하나. - 두 번째는 목록 시작 부분에서 줄을 제거하고 (0을 인수로 사용하여
pop
메서드를 사용하여) 줄을 반환합니다.
파일의 writelines
방법을 사용하여 목록을 파일에 쓰려면 세 번째 기능을 추가해야합니다. 원하는 경우이 함수를 다른 함수 모두에서 호출하여 목록이 변경 될 때마다 파일에 기록되도록 할 수 있습니다. 마지막으로 파일에서 행 목록을로드하는 기능이 있어야합니다.
멀티 스레드 프로그램에서 이것을 사용하려면이 모듈은 한 번에 하나의 스레드 만 목록을 수정할 수 있도록 threading.Lock
을 사용해야합니다.
시도한 코드를 추가하십시오. –