PyLZMA을 사용하여 아카이브 (예 : test.7z)에서 파일을 추출하고 같은 디렉토리에 압축을 풀고 싶습니다.PyLZMA 사용법 예제
저는 파이썬의 초보자이며 시작하는 법을 모릅니다. Google 검색을 완료했으며 some examples과 docs을 찾았지만 어떻게 작동하는지 이해할 수 없습니다.
누군가 내가하고 싶은 일에 대한 기본 코드를 게시하여 일하고 이해할 수 있습니까?
PyLZMA을 사용하여 아카이브 (예 : test.7z)에서 파일을 추출하고 같은 디렉토리에 압축을 풀고 싶습니다.PyLZMA 사용법 예제
저는 파이썬의 초보자이며 시작하는 법을 모릅니다. Google 검색을 완료했으며 some examples과 docs을 찾았지만 어떻게 작동하는지 이해할 수 없습니다.
누군가 내가하고 싶은 일에 대한 기본 코드를 게시하여 일하고 이해할 수 있습니까?
이 기본 기능을 처리하는 파이썬 클래스입니다 여기 두 개의 코드 조각입니다. 나는 내 자신의 일을 위해 그것을 사용했다 :
import py7zlib
class SevenZFile(object):
@classmethod
def is_7zfile(cls, filepath):
'''
Class method: determine if file path points to a valid 7z archive.
'''
is7z = False
fp = None
try:
fp = open(filepath, 'rb')
archive = py7zlib.Archive7z(fp)
n = len(archive.getnames())
is7z = True
finally:
if fp:
fp.close()
return is7z
def __init__(self, filepath):
fp = open(filepath, 'rb')
self.archive = py7zlib.Archive7z(fp)
def extractall(self, path):
for name in self.archive.getnames():
outfilename = os.path.join(path, name)
outdir = os.path.dirname(outfilename)
if not os.path.exists(outdir):
os.makedirs(outdir)
outfile = open(outfilename, 'wb')
outfile.write(self.archive.getmember(name).read())
outfile.close()
여기에 내가 여기 http://www.linuxplanet.org/blogs/?cat=3845
# Compress the input file (as a stream) to a file (as a stream)
i = open(source_file, 'rb')
o = open(compressed_file, 'wb')
i.seek(0)
s = pylzma.compressfile(i)
while True:
tmp = s.read(1)
if not tmp: break
o.write(tmp)
o.close()
i.close()
# Decomrpess the file (as a stream) to a file (as a stream)
i = open(compressed_file, 'rb')
o = open(decompressed_file, 'wb')
s = pylzma.decompressobj()
while True:
tmp = i.read(1)
if not tmp: break
o.write(s.decompress(tmp))
o.close()
i.close()
비슷한 발췌 문장은 이미 github.com/fancycode/pylzma/blob/master/doc/usage.txt에 있으며 또한's.flush()'는 압축 해제의 경우에주의해야합니다. (그러나 어쨌든, 먼저 여기에서 인터넷 검색을 수행합니다. – HoverHell
OP가 아카이브에서 파일을 추출하려고하므로이 질문에 대답하지 않았고 전혀 투표하지 않은 것을 알게되었습니다. – martineau
usage.txt -> usage .md @ https://github.com/fancycode/pylzma/blob/master/doc/USAGE.md – philshem
당신이 시도한 것과 실패한 방법에 대한 몇 가지 예를 보여줄 수 있습니까? – Levon
'class Base (object) : "" "base oject" ""'... –
사람들이 여기에 보통 "코드를 줘"라는 질문에 눈살을 찌푸린 채,이 라이브러리는 실제로 완전히 문서화되지 않은 것 같습니다. 어떤 노력을 보이기 위해, 당신이 찾은 것, 시도한 것 그리고 누락 된 것을 우리에게 보여 주면 더 나은 지원을받을 수 있습니다. – KurzedMetal