首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中读取目录和其中的所有文件

如何在Python中读取目录和其中的所有文件
EN

Stack Overflow用户
提问于 2020-05-27 14:54:33
回答 1查看 70关注 0票数 0

我仍然是python的新手,我正在制作一个简单的应用程序,它是从ppt文件中提取文本。

我有一个项目结构。

代码语言:javascript
复制
> Project_Python
    >> Files
       >>> Class A
             - History.ppt
       >>> Class B
             - Animals.ppt
    >> Result
            ???
 - main.py

我的问题是,如何读取Class AClass B?的sub_folder中的文件,并希望它在打印后自动创建Result中的Files文件夹结构

这就是我尝试过的

代码语言:javascript
复制
from pptx import Presentation
import glob
import pathlib
import os

p_temp = pathlib.Path('Files') //How can I read sub folders folder dynamically

for eachfile in glob.glob("**/*.pptx"):
    prs = Presentation(eachfile)
    print(eachfile)
    print("----------------------")
    textdata = []
    for slide in prs.slides:
        for shape in slide.shapes:
            if hasattr(shape, "text"):
                textdata.append(shape.text)
    print(''.join(textdata[1:]) , file=open("Result/"+eachfile+".txt" , "a")) //Create the same folder structure of Files
EN

回答 1

Stack Overflow用户

发布于 2020-05-27 15:14:54

除了使用glob.glob之外,您的代码几乎都是正确的。

您还应该传递recursive=True参数

要创建包含子目录的目录,可以使用os.makedirs

代码语言:javascript
复制
from pptx import Presentation
import glob
import pathlib
import os

p_temp = pathlib.Path('Files') //How can I read sub folders folder dynamically

for eachfile in glob.glob(p_temp+"**/*.pptx", recursive=True):
    prs = Presentation(eachfile)
    print(eachfile)
    print("----------------------")
    textdata = []
    for slide in prs.slides:
        for shape in slide.shapes:
            if hasattr(shape, "text"):
                textdata.append(shape.text)
    os.makedirs(str(pathlib.Path(eachfile).parent).replace('Files','Result')
    print(''.join(textdata[1:]) , file=open("Result/"+eachfile+".txt" , "a")) //Create the same folder structure of Files
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62037105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档