파이썬 응용 프로그램을 쓰고 있는데 다른 스레드에서 여러 텍스트 파일을 엽니 다. 열려있는 동안 각 스레드가 파일에 대한 작업을 수행하기를 원합니다. 외부 텍스트 편집기가 파일을 닫으면 해당 스레드의 처리가 중지되어야합니다. 그래서 텍스트 파일이 아직 열려 있는지 여부를 확인해야합니다.열린 텍스트 파일 확인
class MyThread (Thread):
def __init__(self, sf):
Thread.__init__(self)
self.sf = sf # sourcefile
def run (self):
subprocess.Popen([EDITOR, self.sf])
문제는 이제 하위 프로세스가 편집기에서 파일을 열고 run()이 종료된다는 것입니다. 어떻게 외부에서 파일을 닫을 때까지 run()을 열어 둘 수 있습니까?
파이썬 코드가 파일을 읽거나 쓰는 중이라면 동시에 외부 편집기를 열 필요가 있습니까? – merlin2011
파이썬 코드는 텍스트 파일의 내용으로 아무 것도하지 않습니다. 아이디어는 텍스트 편집기 (vi)의 기능을 사용하고 있습니다. 발생하는 처리는 내용을 html로 변환하여 다른 파일에 저장하는 것입니다. – loxosceles
텍스트 편집기는 읽기 및 쓰기 작업 중에 만 짧은 시간 동안 파일을 엽니 다. 그 시간 동안 파일을 잠그거나 "스왑"파일 등을 만들거나하지 않을 수도 있습니다. 더 나은 접근법은 폴링 수정 시간 또는'inotify'와 같은 것을 사용하여 파일이 언제 변경되는지를 찾는 것입니다. 행운을 빕니다. –