Python 파일 IO 및 zipfile. 폴더의 모든 파일을 반복 한 다음 Python을 사용하여 각 파일의 텍스트를 반복합니다.

안질 다 말라

모든 zip 파일을 추출하고 모든 파일이 저장 될 폴더에 동일한 이름을 지정하려고합니다. 폴더의 모든 파일을 반복 한 다음 해당 파일 내의 행을 반복하여 다른 텍스트 파일에 기록합니다.
이것은 지금까지 내 코드입니다.

#!usr/bin/env python3
import glob
import os
import zipfile

zip_files = glob.glob('*.zip')
for zip_filename in zip_files:
    dir_name = os.path.splitext(zip_filename)[0]
    os.mkdir(dir_name)
    zip_handler = zipfile.ZipFile(zip_filename, "r")
    zip_handler.extractall(dir_name)

path = dir_name
fOut = open("Output.txt", "w")

for filename in os.listdir(path):
    for line in filename.read().splitlines():
        print(line)
        fOut.write(line + "\n")
fOut.close()

이것은 내가 발생하는 오류입니다.

for line in filename.read().splitlines():
AttributeError: 'str' object has no attribute 'read'
Padraic Cunningham

파일을 열고 파일 경로를 결합해야합니다. 또한 분할 선을 사용하고 각 줄에 줄 바꿈을 추가하는 것은 약간 중복됩니다.

path = dir_name
with open("Output.txt", "w") as fOut:    
    for filename in os.listdir(path):
        # join filename to path to avoid file not being found
        with open(os.path.join(path, filename)):
            for line in filename:
                fOut.write(line)

with파일이 자동으로 닫히므로 항상를 사용 하여 파일을 열어야합니다. 파일이 크지 않으면 간단하게 fOut.write(f.read())루프를 제거 할 수 있습니다 .

또한 path = dir_name경로가 dir_name첫 번째 루프에 있던 마지막 값이 원하는대로 설정 될 수도 있고 그렇지 않을 수도 있음을 의미합니다. 를 사용 iglob하여 전체 목록을 만들지 않을 수도 있습니다 zip_files = glob.iglob('*.zip').

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관