精华内容
下载资源
问答
  • python新建文件夹

    千次阅读 2019-09-02 20:04:47
    创建路径为path的文件夹(path应该包括新建文件夹名字) def mkdir(path): #path为从程序目录到要创建的目录路径(包含新建文件夹名) #引入模块 import os #去除首尾空格 path=path.strip() #strip方法只要...

    创建路径为path的文件夹(path应该包括新建文件夹名字)

     def mkdir(path):
     		import os
     		#function:新建文件夹
            #path:str-从程序文件夹要要创建的目录路径(包含新建文件夹名)
            #去除首尾空格
            path=path.strip()   #strip方法只要含有该字符就会去除
            #去除首尾\符号
            path=path.rstrip('\\')
            #判断路径是否存在
            isExists = os.path.exists(path)
            
            #根据需要是否显示当前程序运行文件夹
            #print("当前程序所在位置为:"+os.getcwd()) 
            
            if not isExists:
                os.makedirs(path)
                print(path+'创建成功')
                return True
            else:
                print(path+'目录已存在')
                return False        
    
    展开全文
  • 但是建package时会在这个文件夹中自动地生成一个空的__init__.py文件。 python的一个包是一个带有特殊文件__init__.py的目录。__init__.py文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,...

    pycharm创建普通的directory和package时都是在硬盘上建立一个文件夹。
    但是建package时会在这个文件夹中自动地生成一个空的__init__.py文件。
    python的一个包是一个带有特殊文件__init__.py的目录。__init__.py文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

    参考文章:PyCharm选中文件夹新建时Directory与Python package的区别

    展开全文
  • 最前面为类别,所以我根据“-”符号获取“-”前面类别,创建对应文件夹,把他们都放进去。最终效果 分类成功 def seplabel(fname): # .前面的字符 filestr = fname.split(".")[0] # -前面的字符 label = in...

    以下是单个文件夹里的所有图片,我们的目的是把这些图片按照“-”前的数字序号进行分类,存到新的文件夹里。
    在这里插入图片描述
    “-”前面的数字为类别,后面是对应序号。所以我根据“-”符号获取“-”前面类别进行划分,根据每个类别创建对应文件夹,把各个类别里的图片都放入对应文件夹中去。最终效果
    在这里插入图片描述
    名为1的文件夹中的内容
    在这里插入图片描述
    分类成功,如果再次运行,因为图片重复,给他继续延续序号,如果中间的序号不连续有断层,例如(1-0001,1-0005)会自动填补断层(1-0002~1-0004)。
    在这里插入图片描述

    完成步骤或思路:

    ①拆分图片的标签:

    def seplabel(fname):
        # .前面的字符
        filestr = fname.split(".")[0]
        # -前面的字符
        label = int(filestr.split("-")[0])
        return label
    

    ②图片类别的个数:

    # 把图片中的类别总个数找出来,即要创建多少个文件夹
    def labelnum(fname):  # C:/Users/sinyjam/Desktop/xingzuotu/*.jpg
        # 图片数记录
        num = len(imglist)
        labelnumber = []
        maxlabel = 0
        for i in range(0, num):
            imglist2 = os.path.basename(imglist[i])  # 获取路径下图片名称
            a = seplabel(imglist2)
            labelnumber.append(a)
            set(labelnumber)
            # set去除多余元素,最后数量为[1,2,3,4,5]
            num = len(set(labelnumber))
        return num
    

    ③图片具体类别(list存储):

    # 把图片中的类别保存下来
    def labellist(fname):  # C:/Users/sinyjam/Desktop/xingzuotu/*.jpg
        # 图片数记录
        num = len(imglist)
        labelnumber = []
        labelnumberlist = []
        maxlabel = 0
        for i in range(0, num):
            imglist2 = os.path.basename(imglist[i])  # 获取路径下图片名称
            a = seplabel(imglist2)
            labelnumber.append(a)
            set(labelnumber)
            # set去除多余元素,最后数量为举例:[1,2,3,4,5] 5个
        labelnumberlist = set(labelnumber)
        return labelnumberlist
    

    ④读取图片类别数目创建对应类别序号文件夹:

    # 创建文件夹
    def createfilefloder(fname):
        path = 'C:/Users/sinyjam/Desktop/xingzuotu2/'  # 设置创建后文件夹存放的位置
        for i in labellist(fname):  # 这里创建类别个数个文件夹
            # *定义一个变量判断文件是否存在,path指代路径,str(i)指代文件夹的名字*
            isExists = os.path.exists(path + str(i))
            if not isExists:  # 判断如果文件不存在,则创建
                os.makedirs(path + str(i))
                print("%s 目录创建成功" % i)
            else:
                print("%s 目录已经存在" % i)
                continue  # 如果文件不存在,则继续上述操作,直到循环结束
    

    ⑤将图片复制并分类到目标文件夹:

    # 读取文件并且复制文件到相应的文件夹,
    # 这里的fname2不能是全路径到jpg,最后是文件夹/结尾
    def readImgAndSave(fname2):
        ls = os.listdir(fname2)
        for i in ls:
            print(i)
            istr = i.split(".")[0]
            label = istr.split("-")[0]
            dst = os.path.join(destination_path, label)
            new_image = os.path.join(dst, i)
            # print(istr)
            # print(label)
            if not os.path.exists(new_image):
                shutil.copy(fname2 + '/' + i, destination_path + '%s' % label + '/')
            else:
                images = os.listdir(dst)
                max_serial = -1
                for im in images:
                    _, serial_num = im.split('-')[0], im.split('-')[1]
                    theNum = re.compile('0*([1-9][0-9]*)').findall(serial_num)[0]
                    max_serial = max(max_serial, int(theNum))
                max_serial += 1
                new_name = label + '-' + str(max_serial).zfill(4) + '.jpg'
                new_file_path = os.path.join(dst, new_name)
                shutil.copy(fname2 + '/' + i, new_file_path)
    

    ⑥将图片转为RGB(可选项):

    因为神经网络训练的要求,提前做好RGB转换

    # 转RGB
    def ChangeToRgb(fname):
        for infile in glob.glob(picturepath):
            # file为前面的所有路径,ext为.jpg,拼在一起是一个完整的路径
            file, ext = os.path.splitext(infile)
            Img = Image.open(infile)
            # 看图片类型。是不是我们要的RGB,不是就转换成RGB
            print(Img.mode, file)
            if Img.mode != 'RGB':
                Img = Img.convert('RGB')
    

    代码

    接下来将提供两个版本的代码(思路类似,只是第二种稍作优化,删去了一些冗余代码,看起来简洁)

    一、上述拆分步骤的完整代码

    from PIL import Image
    import numpy as np
    import pickle, glob
    import os  # 导入创建文件夹模块
    import shutil
    import re
    
    # 拆分标签
    def seplabel(fname):
        # .前面的字符
        filestr = fname.split(".")[0]
        # -前面的字符
        label = int(filestr.split("-")[0])
        return label
    
    
    # 把图片中的类别总个数找出来,即要创建多少个文件夹
    def labelnum(fname):  # C:/Users/sinyjam/Desktop/xingzuotu/*.jpg
        # 图片数记录
        num = len(imglist)
        labelnumber = []
        maxlabel = 0
        for i in range(0, num):
            imglist2 = os.path.basename(imglist[i])  # 获取路径下图片名称
            a = seplabel(imglist2)
            labelnumber.append(a)
            set(labelnumber)
            # set去除多余元素,最后数量为[1,2,3,4,5]
            num = len(set(labelnumber))
        return num
    
    
    # 把图片中的类别保存下来
    def labellist(fname):  # C:/Users/sinyjam/Desktop/xingzuotu/*.jpg
        # 图片数记录
        num = len(imglist)
        labelnumber = []
        labelnumberlist = []
        maxlabel = 0
        for i in range(0, num):
            imglist2 = os.path.basename(imglist[i])  # 获取路径下图片名称
            a = seplabel(imglist2)
            labelnumber.append(a)
            set(labelnumber)
            # set去除多余元素,最后数量为举例:[1,2,3,4,5] 5个
        labelnumberlist = set(labelnumber)
        return labelnumberlist
    
    
    # 创建文件夹
    def createfilefloder(fname):
        path = 'C:/Users/sinyjam/Desktop/xingzuotu2/'  # 设置创建后文件夹存放的位置
        for i in labellist(fname):  # 这里创建类别个数个文件夹
            # *定义一个变量判断文件是否存在,path指代路径,str(i)指代文件夹的名字*
            isExists = os.path.exists(path + str(i))
            if not isExists:  # 判断如果文件不存在,则创建
                os.makedirs(path + str(i))
                print("%s 目录创建成功" % i)
            else:
                print("%s 目录已经存在" % i)
                continue  # 如果文件不存在,则继续上述操作,直到循环结束
    
    
    # 读取文件并且复制文件到相应的文件夹,
    # 这里的fname2不能是全路径到jpg,最后是文件夹"/"结尾
    # C:/Users/sinyjam/Desktop/xingzuotu
    def readImgAndSave(fname2):
        ls = os.listdir(fname2)
        for i in ls:
            print(i)
            istr = i.split(".")[0]
            label = istr.split("-")[0]
            dst = os.path.join(destination_path, label)
            new_image = os.path.join(dst, i)
            # print(istr)
            # print(label)
            if not os.path.exists(new_image):
                shutil.copy(fname2 + '/' + i, destination_path + '%s' % label + '/')
            else:
                images = os.listdir(dst)
                max_serial = -1
                for im in images:
                    _, serial_num = im.split('-')[0], im.split('-')[1]
                    theNum = re.compile('0*([1-9][0-9]*)').findall(serial_num)[0]
                    max_serial = max(max_serial, int(theNum))
                max_serial += 1
                new_name = label + '-' + str(max_serial).zfill(4) + '.jpg'
                new_file_path = os.path.join(dst, new_name)
                shutil.copy(fname2 + '/' + i, new_file_path)
    
    # 转RGB
    def ChangeToRgb(fname):
        for infile in glob.glob(source_path):
            # file为前面的所有路径,ext为.jpg,拼在一起是一个完整的路径
            file, ext = os.path.splitext(infile)
            Img = Image.open(infile)
            # 看图片类型。是不是我们要的RGB,不是就转换成RGB
            print(Img.mode, file)
            if Img.mode != 'RGB':
                Img = Img.convert('RGB')
    
    
    source_path = "C:/Users/sinyjam/Desktop/xingzuotu/*.jpg"
    source_pathf = "C:/Users/sinyjam/Desktop/xingzuotu/"
    destination_path = "C:/Users/sinyjam/Desktop/xingzuotu2/"
    imglist = glob.glob(source_path)
    ChangeToRgb(source_path)
    # 类别数print(labelnum(imglist))
    # 根据类别数创造文件夹
    createfilefloder(labelnum(imglist))
    # 打印list里有哪些
    # print(labellist("C:/Users/sinyjam/Desktop/xingzuotu/*.jpg"))
    readImgAndSave(source_pathf)
    
    
    

    如果觉得前面的麻烦,也没事,这里优化了代码,只是分文件夹的话,下面的够用了
    简化版代码即可:

    二、 精简版(25行超浓缩)

    import os
    import re
    from shutil import copyfile
    import shutil
    source_path = r'C:\Users\sinyjam\Desktop\aaa'
    destination_path = r'C:\Users\sinyjam\Desktop\aaa3'
    #返回文件名
    images = os.listdir(source_path)
    print(images)
    num = 0
    for i in images:
        category, name = i.split('-')[0], i.split('-')[1]
        src = os.path.join(source_path, i)
        dst = os.path.join(destination_path, category)
        new_image = os.path.join(dst, i)
        if not os.path.exists(dst):
            os.mkdir(dst)
            continue
        elif not os.path.exists(new_image):
            shutil.copy(src, new_image)
        else:
            images = os.listdir(dst)
            max_serial = -1
            for im in images:
                _, serial_num = im.split('-')[0].strip(), im.split('-')[1].strip()
                theNum = re.compile('0*([1-9][0-9]*)').findall(serial_num)[0]
                max_serial = max(max_serial, int(theNum))
            max_serial += 1
            new_name = category + '-' + str(max_serial).zfill(4) + '.jpg'
            new_file_path = os.path.join(dst, new_name)
            shutil.copy(src, new_file_path)
    

    ——孙LL&Sinysama

    展开全文
  • 1.新建文件夹:mkdir xx 2.新建文件: touch 1.py 3.删除文件/文件夹: rm -r xx rm 1.py 4.打开文件:cat 1.py 只显示前几行 :head -2 1.py 只显示后几行 :tail -2 1.py 5.查找文件 :find 文件目录 规则 ...

    1.新建文件夹:mkdir xx

    2.新建文件: touch 1.py

    3.删除文件/文件夹: rm -r xx  rm 1.py

    4.打开文件:cat 1.py

    只显示前几行 :head -2 1.py

    只显示后几行 :tail -2 1.py

    5.查找文件 :find 文件目录 规则 参数   find . -name  “*.py”

     

    .和..:

    .:当前目录,

    ..:上级目录

    转载于:https://www.cnblogs.com/wanghouxuan/p/7228885.html

    展开全文
  • python中import文件夹下面py文件,报错

    万次阅读 2018-07-31 17:56:32
    在需要导入的那个文件夹里面新建一个 __init__.py文件,哪怕这个文件是空的文件也可以.
  • 一、pycharm当中,新建package有两种类型(文件夹、python文件夹) ①python package包是一个带有特殊文件 __init__.py 的目录 __init__.py 文件定义了包的属性和方法。 其实它可以什么也不定义;可以只是一...
  • python调用别的文件夹下的py文件

    千次阅读 2018-10-29 15:19:44
    主文件(DataProvider.py)需要运用DataOuter.py中的函数,在同一个COMProj大文件夹下,分别在DataOuter和DataProvider下 ? 1 2 3 4 5 import sys from sys import...
  • 看一下那个文件夹有没有__init__.py文件,没有的话新建一个,空的也行,就能找到了 应该是没有这个文件flask不会把它当作一个包,不会引入
  • 文件夹包含内容: 在new.py中引入: 在被引入的文件夹下必须有 __init__.py文件(空白的也无所谓)可以自己新建
  • 出现问题: 引用本地文件中的函数时,出现找不到本地文件中函数情况。 ...在需要导入的那个文件夹里面新建一个 init.py文件,哪怕这个文件是空的文件也可以。 (这里__init__.py是个空文件) ...
  • Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序...一、a.py 要 import dir目录下的 b.py 文件。 a.py代码如下: # c...
  • 在开发稍大规模python程序时,就不能将所有*.py源文件放到一个文件夹里管理了。 特别是当一个py文件调用另一个py文件中定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。 同时在使用...
  • 这篇文章主要介绍了Python引用(import)文件夹下的py文件的方法,Python中比较特别,导入文件夹下的py文件,则这个目录下必须要有一个__init__.py文件才可,需要的朋友可以参考下 Python的import包含文件功能就跟PHP的...
  • 这几天玩ctf发现一个问题,python代码新建文件及文件夹的目录问题。这是一个小问题,但有时候稍不注意也会八人弄懵了,废话不多说,进入主题。 当你在d:/python 目录下用ide(这里我用的是pycharm)运行这样的代码...
  • 但是建package时会在这个文件夹中自动地生成一个空的__init__.py文件。python的一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件...
  • 问题:一个文件test.py访问另一个文件夹readcsv.py,同时readcsv.py 打开另一个文件result.csv报找不到result.csv文件 目录结构如下: learnimport/  --test/ --test.py  --tools/  --readcsv.py  --...
  • 默认情况下,Ubuntu 右键没有新建文档选项。要在右键添加 新建模板文件 的快捷键,需要使用到 用户家目录 中的Templates(模板)文件夹。该文件夹 专门用来存放 右键的新建文件模板...2. 新建.py脚本,将其另存到这...
  • 今天来分享一下,常见文件类型和Linux系统中新建文件,新建文件夹,删除文件,删除空文件夹,删除非空文件夹。 首先介绍一下,在Linux下,为了方便用户识别,我们会在文件名添上后缀来区分文件类型,下面简要的说...
  • 一般模型更改时执行一下两条指令: ...因为系统自动生成的有一张表django_migrations专门用来记录你的python manage.py makeigrations操作的,与项目根目录下migrations文件夹中的文件是一一对应的。 即如下表: .
  • 在我们把py文件迁移到其他地方后,打开通常会出现这种情况,原因就是虚拟环境没有配置好,有个比较简单的方法解决 1.新建一个项目,随便命名...3.打开你要执行的py文件所在的文件夹,如果已经有这2个文件了,那就删...
  • 编译方式,windows下的esp具:esp-idf-tools-setup-2.0.exe ... 使用新的ESP32 SDK V3.2,新建一个工程,可以把esp-idf的例程复制一份出来,放在一个文件夹下,并加入git管理。 编译问题: idf.py fullclean...
  • # -*- coding: utf-8 -*- import os pwd = os.getcwd() #获取路径 print(pwd) filename = pwd +'\\'+'weixin' #新建文件 print(filename) if not os.path.exists(fil...
  • 但是自己创建的文件夹导入模块失败 这个时候你需要如下操作 便可以导入成功
  • 使用create_project.py脚本将新建的工程与cocos2d-x-2.1.4关联,好让工程正确找到对应的include和lib库。 安装好Pyhton 2.7.3并将python.exe命令所在目录加到Path中后,如何使用D:\cocos2d-x-2.1.4\cocos2d-x-...
  • python清空文件夹

    千次阅读 2019-01-01 21:39:33
    要清空一个文件夹,可以通过删除该文件夹新建一个一样的文件夹来达到清空文件夹的效果 import os import shutil shutil.rmtree(dirpath) # 能删除该文件夹文件夹下所有文件 os.mkdir(dirpath)  ...
  • Py之h5py:Python库之h5py库的简介、安装、使用方法详细攻略 目录 h5py的简介 Websites Installation Reporting bugs h5py的安装 h5py的使用方法 1、写入数据 2、读取数据 h5py的简介 ...
  • 当我新建一个pydev package时,总会自动地生成一个空的__init__.py文件,因为是python新手,所以很不了解这个空文件的作用是什么,因为没有什么东西可写在这里,所以我直接把这个文件给删掉了,结果我的包图标自动...
  • 感谢“自强学堂”的无私奉献,根据教程安装了Django 1.9.12后,尝试新建项目,此时使用python manage.py startapp app-name 一直无法建立app。错误的最后一行是“django.core.exceptions.ImproperlyConfigured
  • 在pycharm使用过程中,对于每次新建文件的shebang行和关于代码编写者的一些个人信息快捷填写,使用模板的方式比较方便。 配置方法如下: 1.打开pycharm,选择File-Default Settings 2....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,938
精华内容 16,775
关键字:

py新建文件夹