저는 파이썬으로 시작했고 '파일'클래스에서 파생 된 파일 객체 클래스를 만들어 대용량 데이터 파일을 조작 할 수있게되었습니다. 다음과 같이 작성된 특정 파일에 대해 작업 할 구체적인 방법을 만들었습니다. MyClass의 새 인스턴스를 각 메서드에서 작업 한 후에도 계속 반환해야합니다. 문제는 동일한 메소드를 여러 번 사용하면 MyClass 인스턴스의 지원으로 계속 사용되기 때문에 임시 파일로 사용되는 foo.txt 파일과 충돌이 발생한다는 것입니다. 이 문제를 해결할 방법이 있습니까? 또는 모든 파일에 대해 임의의 이름을 만들어야합니까? 귀하의 답변파이썬 : 파일과 객체의 충돌
감사합니다, 조지
Class MyClass(file):
"Similar to open(file_path,'r')"
def __init__(self,file_path):
file.__init__(self,file_path)
self.tell()
def method(self):
"""Extract informations from self to write them in a temporary file foo.txt
that will be used to return a new instance of MyClass"""
output=open('foo.txt','w')
self.seek(0)
# Extracting information from self
output.write(information)
output.close()
return MyClass('foo.txt')
나는 좀 더 명확하게 할 수있는 exemple를 완료했습니다. 내 문제는 내가 메서드에서 만드는 파일에서 MyClass의 새 인스턴스를 반환한다는 것입니다. foo.txt에서 생성 된 인스턴스를 닫지 않고이 메소드를 여러 번 사용하면 foo.txt가 다시 써지기 때문에 인스턴스가 비어 있고 '없음'이 반환됩니다. exemple의 경우 : b는
HTH는 당신이 당신을 위해 임시 파일을 만들 수있는 ['TEMPFILE'] (http://docs.python.org/2/library/tempfile.html) 모듈을 찾고있는 느낌을 얻을. 그러나 당신의 질문에서'file_path'와''foo.txt''가 어디에서오고 있는지 명확하지 않습니다. –
내가 틀릴 수도 있지만 임시 파일이 내 문제를 해결하지 못할 것이라고 생각합니다. Python에서 (파일없이) 처음부터 파일 객체를 만들거나 파일 객체를 파일을 지원하는 파일과 독립적으로 만들 수 있습니까? – GeorgeDean
'method'를 실행할 때마다 왜 새 인스턴스가 필요한가요? 이런 식으로 파일 액세스 동기화, 임시 파일 닫기 등 몇 가지 추가 문제를 해결해야합니다. –