首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建新文件夹/目录时遇到问题

创建新文件夹/目录时遇到问题
EN

Stack Overflow用户
提问于 2019-05-24 03:25:58
回答 1查看 39关注 0票数 0

我正在尝试编写一个程序,它可以抓取特定数据类型的文件夹,在该文件夹中创建一个新文件夹,并在该文件夹中创建该数据类型的每个文件的副本。

我已经通过在已经存在的不同文件夹中制作文件的副本来让它工作,但我想一气呵成。这是目前为止的代码:

代码语言:javascript
运行
复制
import glob, os, shutil

def imageSearch(folder):
    newFolder = folder + '\\imgCopy'
    if not os.path.isdir(newFolder):
        os.makedirs(newFolder)
    files = glob.iglob(os.path.join(folder, '*.jpg'))
    for file in files:
        if os.path.isfile(file):
            shutil.copy2(file, newFolder)

print('Which folder are you crawling?')
imageSearch(input())

到目前为止没有错误消息,只是没有得到任何新的文件夹或文件。

EN

Stack Overflow用户

回答已采纳

发布于 2019-05-24 03:38:21

欢迎使用StackOverflow。由于您是新来的,这是一个简单的问题,这里有一个完整的解决方案。

代码语言:javascript
运行
复制
import glob, os, shutil

def imageSearch(folder, ext='jpg'):
    if os.path.isdir(folder):
        newFolder = os.path.join(folder, folder+'Copy')
        print(newFolder)
        if not os.path.isdir(newFolder):
            os.makedirs(newFolder)
        for file in glob.iglob(os.path.join(folder, '*.'+ext)):
            if os.path.isfile(file):
                shutil.copy2(file, newFolder)
    else:
        print("Folder does not exist.")

folder = input('Which folder are you crawling?\n')
ext = input('What file extension would you like to search for?\n')
imageSearch(folder, ext)

我现在将解释我做了什么。首先(修复代码的事情),我用newFolder = os.path.join(folder, folder+'Copy')替换了newFolder = folder + '\\imgCopy',因为os.path.join()会自动为你修复任何问题(文件夹是否以斜杠结尾?用户使用的文件系统中的目录是用正斜杠还是反斜杠分隔的?)。如果文件夹没有命名为img,我使用了folder+'Copy'。我还删除了外部变量files,因为它只用过一次。我在开始时添加了一个os.path.isdir(),以防止不存在的文件夹。最后,我允许使用可选参数ext定制扩展。

在函数外部,我删除了无关的print语句:默认情况下,input可以打印提示。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56281783

复制
相关文章

相似问题

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