精华内容
下载资源
问答
  • 如下所示: # coding=utf-8 import os import os.path import re ...+ ".txt" 以上这篇对Python 检查文件名是否规范的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    如下所示:

    # coding=utf-8

    import os

    import os.path

    import re

    import array

    import cmd

    import pdb

    import pickle

    import tempfile

    import subprocess

    # rootPath = os.getcwd()

    # print rootPath

    rootPath = raw_input('The Check Path:')

    nonCheckDir = raw_input('The Non Check DirName(DirName1;DirName2):')

    nonCheckDirList = []

    if nonCheckDir:

    nonCheckDirList = nonCheckDir.split(';')

    # 路径字典

    pathDic = {}

    # 新建文件夹 os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在

    if not os.path.isdir(rootPath+'/logout'):

    os.makedirs(rootPath + '/logout')

    logPath=os.path.join(rootPath,'logout')

    nonstandard_filename_path = open(logPath+'/nonstandard_filename_path.txt','w')

    # 标准的符号库

    num = "0123456789"

    word = "abcdefghijklmnopqrstuvwxyz"

    sym = "_."

    # 符号库

    symBank = []

    for key in word:

    symBank.append(key)

    for key in num:

    symBank.append(key)

    for key in sym:

    symBank.append(key)

    def GetAllDir(getPath):

    # print (getPath)

    paths = os.listdir(getPath)

    for dirName in paths:

    dirPath = os.path.join(getPath,dirName)

    if os.path.isdir(dirPath) and dirName != '.svn':

    # print dirPath

    relPath = dirPath[len(rootPath)+1:len(dirPath)]

    # print relPath

    if not nonCheckDirList.__contains__(relPath):

    pathDic[relPath] = dirPath

    GetAllDir(dirPath)

    def GetAllFile(getPath):

    files = os.listdir(getPath)

    for fileName in files:

    filePath = os.path.join(getPath,fileName)

    if fileName.endswith('.png') or fileName.endswith('.PNG'):

    fileName = fileName[0:fileName.index('.')]

    if not set(fileName).issubset(symBank):

    # print fileName

    # print filePath

    nonstandard_filename_path.write(filePath + '\n')

    else:

    # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)

    sign = re.search(r'_[\d]*[x|X][\d]*\d',fileName,re.M|re.I)

    if sign:

    nonstandard_filename_path.write(filePath + '\n')

    if __name__ == '__main__':

    print ('main')

    pathDic['curPath'] = rootPath

    GetAllDir(rootPath)

    for key in pathDic:

    # print key

    GetAllFile(pathDic[key])

    # line = "image_500100000"

    # obj = re.search(r'_[\d]*[x|X][\d]*\d',line,re.M|re.I)

    # line = line.replace(obj.group(),'=')

    # if obj:

    # print obj.group()

    # else:

    # print ("==-")

    # line1 = "image_500x100"

    # obj1 = re.search(r'[a-z0-9_]*',line1,re.M)

    # print obj1.group()

    新建bat后缀文件

    find_nonstandard_name.exe -c

    @pause

    修改后脚本

    # coding=utf-8

    import os

    import os.path

    import re

    import array

    import cmd

    import pdb

    import pickle

    import tempfile

    import subprocess

    import sys

    import getopt

    rootPath = ""

    nonCheckDirList = sys.argv[1:]

    opts, args = getopt.getopt(sys.argv[1:],"cs:",["cPath="])

    for opt,arg in opts:

    if opt == '-c':

    rootPath = os.getcwd()

    elif opt in ("-s","--cPath"):

    rootPath = arg

    # 路径字典

    pathDic = {}

    # 新建文件夹 os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在

    if not os.path.isdir(rootPath+'/logout'):

    os.makedirs(rootPath + '/logout')

    logPath=os.path.join(rootPath,'logout')

    nonstandard_filename_path = open(logPath+'/nonstandard_filename_path.txt','w')

    def GetAllDir(getPath):

    # print (getPath)

    paths = os.listdir(getPath)

    for dirName in paths:

    dirPath = os.path.join(getPath,dirName)

    if os.path.isdir(dirPath) and dirName != '.svn':

    # print dirPath

    relPath = dirPath[len(rootPath)+1:len(dirPath)]

    # print relPath

    if not nonCheckDirList.__contains__(relPath):

    pathDic[relPath] = dirPath

    GetAllDir(dirPath)

    def GetAllFile(getPath):

    files = os.listdir(getPath)

    for fileName in files:

    filePath = os.path.join(getPath,fileName)

    if fileName.endswith('.png') or fileName.endswith('.PNG'):

    fileName = fileName[0:fileName.index('.')]

    firstSign = re.search(r'^[a-z0-9_]*$',line1,re.M)

    if firstSign:

    # print filePath

    # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)

    sign = re.search(r'_[\d]*[x|X][\d]*\d', fileName, re.M | re.I)

    if sign:

    print fileName

    nonstandard_filename_path.write(filePath + '\n')

    else:

    print fileName

    nonstandard_filename_path.write(filePath + '\n')

    if __name__ == '__main__':

    print ('main')

    pathDic['curPath'] = rootPath

    GetAllDir(rootPath)

    for key in pathDic:

    # print key

    GetAllFile(pathDic[key])

    添加检查文件重名功能

    # coding=utf-8

    import os

    import os.path

    import re

    import array

    import cmd

    import pdb

    import pickle

    import tempfile

    import subprocess

    import sys

    import getopt

    nonCheckDirList = sys.argv[1:]

    rootPath = os.getcwd()

    checkRepetPathList = []

    if nonCheckDirList:

    rootPath = os.path.realpath(os.path.join(os.getcwd(),nonCheckDirList[0]))

    if nonCheckDirList[0] == "./":

    rootPath = os.getcwd()

    for _path in nonCheckDirList:

    # -- 检查重命名路径

    _cmdRepet = _path[0:2]

    if _cmdRepet == "/r":

    repetPath = _path[len(_cmdRepet):len(_path)]

    print repetPath

    checkRepetPathList.append(repetPath)

    print rootPath + '\n'

    # 路径字典

    pathDic = {}

    # 重名路径字典

    repetDic = {}

    # 新建文件夹 os.path.isdir(rootdir+'/logout') 判断指定目录下该文件夹是否存在

    # if not os.path.isdir(rootPath+'/logout'):

    # os.makedirs(rootPath + '/logout')

    # logPath=os.path.join(rootPath,'logout')

    logPath = os.getcwd()

    nonstandard_filename_path = open(logPath+"\\"+u"不规范命名文件".encode("GBK") + ".txt",'w')

    def GetAllDir(getPath):

    # print (getPath)

    paths = os.listdir(getPath)

    for dirName in paths:

    dirPath = os.path.join(getPath,dirName)

    if os.path.isdir(dirPath) and dirName != '.svn':

    # print dirPath

    relPath = dirPath[len(rootPath)+1:len(dirPath)]

    # print relPath

    if not nonCheckDirList.__contains__(relPath):

    pathDic[relPath] = dirPath

    GetAllDir(dirPath)

    def GetAllFile(getPath):

    files = os.listdir(getPath)

    for fileName in files:

    filePath = os.path.join(getPath,fileName)

    if fileName.endswith('.png') or fileName.endswith('.PNG'):

    fileName = fileName[0:fileName.index('.')]

    firstSign = re.search(r'^[a-z0-9_]*$',fileName,re.M)

    if firstSign:

    # print filePath

    # (r'_[\d]*[x|X][\d]*\d') 正则表达式 (_100x100)

    sign = re.search(r'_[\d]*[x|X][\d]*\d', fileName, re.M | re.I)

    if sign:

    print fileName

    nonstandard_filename_path.write(filePath + '\n')

    else:

    print fileName

    nonstandard_filename_path.write(filePath + '\n')

    def CheckRepetFile(getPath):

    if checkRepetPathList:

    paths = os.listdir(getPath)

    for dirName in paths:

    dirPath = os.path.join(getPath, dirName)

    if os.path.isdir(dirPath) and dirName != '.svn':

    # print dirPath

    relPath = dirPath[len(rootPath) + 1:len(dirPath)]

    # print relPath

    repetDic[relPath] = dirPath

    CheckRepetFile(dirPath)

    imageList = []

    repetImagePath = []

    def GetCheckRepetFile(getPath):

    files = os.listdir(getPath)

    for fileName in files:

    filePath = os.path.join(getPath, fileName)

    if fileName.endswith('.png') or fileName.endswith('.PNG'):

    # print filePath

    imageList.append(fileName)

    repetImagePath.append(filePath)

    repet_filename_path = open(logPath+"\\"+u"重复命名文件".encode("GBK") + ".txt",'w')

    if __name__ == '__main__':

    # print ('main')

    pathDic['curPath'] = rootPath

    GetAllDir(rootPath)

    for key in pathDic:

    # print key

    GetAllFile(pathDic[key])

    print '\n' + "The Logout Path:" + logPath+"\\"+u"不规范命名文件".encode("GBK") + ".txt"

    repetDic['curPath'] = rootPath

    # 检查重复文件路径列表

    for __path in checkRepetPathList:

    _repetPath = os.path.join(rootPath, __path)

    CheckRepetFile(_repetPath)

    # 遍历路径获得所有图片

    for key in repetDic:

    GetCheckRepetFile(repetDic[key])

    _newImageList = []

    for image in imageList:

    repetCount = imageList.count(image)

    if repetCount > 1 :

    if not image in _newImageList:

    _newImageList.append(image)

    for repetImage in _newImageList:

    print repetImage

    repet_filename_path.write(repetImage + '\n')

    for repetPathPath in repetImagePath:

    fileNameName = os.path.basename(repetPathPath)

    if repetImage == fileNameName:

    repet_filename_path.write(repetPathPath + '\n')

    # print repetPathPath

    print '\n' + "The Logout Path:" + logPath+"\\"+u"重复命名文件".encode("GBK") + ".txt"

    以上这篇对Python 检查文件名是否规范的实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    展开全文
  • 这篇文章主要介绍了详解python里的命名规范,命名应当尽量使用全拼写的单词,缩写的情况文章中也给大家提到,需要的朋友参考下吧文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性...

    这篇文章主要介绍了详解python里的命名规范,命名应当尽量使用全拼写的单词,缩写的情况文章中也给大家提到,需要的朋友参考下吧

    文件名

    全小写,可使用下划线

    应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。

    模块

    与包的规范同。如mymodule。

    总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

    函数&方法

    函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。

    注意:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

    函数和方法的参数

    总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。

    如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

    全局变量

    对于from M import 导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。注意*:应避免使用全局变量

    变量

    变量名全部小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1

    注意:

    1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。

    2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。

    3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

    常量

    常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

    异常

    以“Error”作为后缀。

    缩写

    命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。

    2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。

    例如:

    function 缩写为 fn

    text 缩写为 txt

    object 缩写为 obj

    count 缩写为 cnt

    number 缩写为 num,等。

    前导后缀下划线

    一个前导下划线:表示非公有。

    一个后缀下划线:避免关键字冲突。

    两个前导下划线:当命名一个类属性引起名称冲突时使用。

    两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如init或者file。绝对不要创造这样的名字,而只是使用它们。

    注意:关于下划线的使用存在一些争议。

    特定命名方式

    主要是指 xxx 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

    class Base(object):

    def init(self, id, parent = None):

    self.id = id

    self.parent = parent

    def message(self, msgid):

    …略

    其中 id、parent 和 message 都采用了系统保留字命名法。

    附:Google Python命名规范

    module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

    总结

    以上所述是小编给大家介绍的python里的命名规范,希望对大家有所帮助,看下图可免费领取python学习资料适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程想要了解python或学习Python的可直接点击链接即可领取相关学习福利包:

    dc51d1492060d1312f64da33b73f2089.png?,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

    标签:缩写,下划线,python,单词,详解,小白学,使用,命名,name

    来源: https://blog.51cto.com/14646124/2491489

    展开全文
  • 学习python编程前先学习一下变量和常量命名规范以及注释规范,要从一开始就养成良好习惯,避免将来遇到一些不必要的麻烦。python虽不限制使用中文变量名,但编程时变量名最好用英文,程序目录名和文件名也尽量用英文...

    学习python编程前先学习一下变量和常量命名规范以及注释规范,要从一开始就养成良好习惯,避免将来遇到一些不必要的麻烦。

    python虽不限制使用中文变量名,但编程时变量名最好用英文,程序目录名和文件名也尽量用英文。因为python编程不可避免的会用到第三方软件包,有些软件包遇到中文变量名和中文目录名、文件名会报错。

    注释可以放心大胆的用中文。

    取名时要遵循一些原则,通常变量、常量是指某一事物或事物的某一属性,所以变量名、常量名通常使用英文的一个或多个名词命名。而方法(又称函数)是指执行某一动作,所以方法(函数)名通常使用英文的动词或动词和名词组合命名。在编写代码时提前准备好英汉双语词典软件很有必要。我的英语不太好,在手机上安装了微软必应词典,在编程时一边查一边记,强迫自己养成使用英语命名的习惯。

    常量

    字母全部大写,由下划线连结各个单词,如:

    HEIGHT = 300

    WINDOW_HEIGHT = 300

    注意在python中常量是python程序员约定俗成的规矩,实质上python解释器并不限制修改常量的值。

    变量、函数、类的实例

    全部小写命名,由下划线连接各给单词,如:

    new_id = 1001

    old_id = 1

    new_id_list = []

    私有属性,变量名以下划线开头即表示私有属性。

    _salary = 6666

    类名

    首字母大写,用驼峰风格,如:

    class NewStudent(object):

    模块和包

    全部以小写字母组成,用下划线连接

    系统保留命名

    __xx__ ,这样的变量都是系统保留命名规则,程序员写的变量避免用这样的格式。

    注释

    单行注释可以单独写一行,也可写在代码行的末尾。

    单行注释以#开头跟2各空格再跟#再跟一个空格,然后写注释,例如:

    _salary = 6666 # 私有属性薪水,不能公开访问。

    多行注释是指三单引号开头三单引号结尾之间的内容,三双引号开头三双引号结尾亦可。不能三单引号开头三双引号结尾,也不能三双引号开头三单引号结尾。

    多行注释最常用的场合是给类、函数注释说明文档,例如:

    def add_x_y(x, y): # 下面的多行注释,'''开头位置一定要注意缩进,'''结束位置单独占一行可以不讲究缩进。

    '''这是个加法器,

    输入2个参数,

    返回这2个参数的和

    '''

    return x + y

    print(add_x_y.__doc__) # __doc__是查看方法或类的说明文档,也可以用help(add_x_y)查看

    class Student(object):

    '''学生类'''

    pass

    print(Student.__doc__)

    out:

    这是个加法器,

    输入2个参数,

    返回这2个参数的和

    学生类

    展开全文
  • 文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。模块与包的规范同。如mymodule。类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线...

    文件名

    全小写,可使用下划线

    应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。

    模块

    与包的规范同。如mymodule。

    总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线。

    函数&方法

    函数名应该为小写,可以用下划线风格单词以增加可读性。如:myfunction,my_example_function。

    *注意*:混合大小写仅被允许用于这种风格已经占据优势的时候,以便保持向后兼容。

    函数和方法的参数

    总使用“self”作为实例方法的第一个参数。总使用“cls”作为类方法的第一个参数。

    如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪的拼写。

    全局变量

    对于from M import *导入语句,如果想阻止导入模块内的全局变量可以使用旧有的规范,在全局变量上加一个前导的下划线。

    *注意*:应避免使用全局变量

    变量

    变量名全部小写,由下划线连接各个单词。如color = WHITE,this_is_a_variable = 1

    *注意*:

    1.不论是类成员变量还是全局变量,均不使用 m 或 g 前缀。

    2.私有类成员使用单一下划线前缀标识,多定义公开成员,少定义私有成员。

    3.变量名不应带有类型信息,因为Python是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

    常量

    常量名所有字母大写,由下划线连接各个单词如MAX_OVERFLOW,TOTAL。

    异常

    以“Error”作为后缀。

    缩写

    命名应当尽量使用全拼写的单词,缩写的情况有如下两种:

    1.常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。

    2.命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。

    例如:

    function 缩写为 fn

    text 缩写为 txt

    object 缩写为 obj

    count 缩写为 cnt

    number 缩写为 num,等。

    前导后缀下划线

    一个前导下划线:表示非公有。

    一个后缀下划线:避免关键字冲突。

    两个前导下划线:当命名一个类属性引起名称冲突时使用。

    两个前导和后缀下划线:“魔”(有特殊用图)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。

    *注意*:关于下划线的使用存在一些争议。

    特定命名方式

    主要是指 __xxx__ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

    class Base(object):

    def __init__(self, id, parent = None):

    self.__id__ = id

    self.__parent__ = parent

    def __message__(self, msgid):

    # …略

    其中 __id__、__parent__ 和 __message__ 都采用了系统保留字命名法。

    附:Google Python命名规范

    module_name, package_name, ClassName, method_name, ExceptionName, function_name, GLOBAL_VAR_NAME, instance_var_name, function_parameter_name, local_var_name.

    展开全文
  • python google 命名规范

    2019-04-20 17:28:09
    Google Python命名规范 module_name, 模块 package_name, 包 ClassName, 类 method_name, 方法 ExceptionName, 异常 function_name, 函数 GLOBAL_VAR_NAME, 全局变量 instance_var_name, 实例 function_parameter_...
  • python命名规范

    2017-05-02 09:10:00
    python命名规范
  • Python命名规范

    2019-12-19 11:00:52
    Google Python命名规范 module_name, 模块 package_name, 包 ClassName, 类 method_name, 方法 ExceptionName, 异常 function_name, 函数 GLOBAL_VAR_NAME, 常量 instance_var_name, 实例 function_parameter_name, ...
  • python——命名规范

    2018-01-20 22:00:09
    文件名 全小写,可使用下划线 包 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。 模块 与包的规范同。如mymodule。 类 总是使用首字母大写单词串。如MyClass。内部类可以...
  • Google Python命名规范module_name, 模块package_name, 包ClassName, 类method_name, 方法ExceptionName, 异常function_name, 函数GLOBAL_VAR_NAME, 常量instance_var_name, 实例function_parameter_name, 参数local...
  • Google Python命名规范module_name, 模块package_name, 包ClassName, 类method_name, 方法ExceptionName, 异常function_name, 函数GLOBAL_VAR_NAME, 常量instance_var_name, 实例function_parameter_name, 参数local...
  • 文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。模块与包的规范同。如mymodule。类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线...
  • python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。模块名:模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是这样...
  • 文件名全小写,可使用下划线包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。模块与包的规范同。如mymodule。类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导下划线...
  • 原文链接:python命名规范(转) 文件名 全小写,可使用下划线 包 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。 模块 与包的规范同。如mymodule。 类 总是使用首字母...
  • module_name, 模块 package_name, 包 ClassName, 类 method_name, 方法 ExceptionName, 异常 function_name, 函数 GLOBAL_VAR_NAME, 全局变量 instance_var_name, 实例 function_parameter_...local_var_na
  • python 变量命名规范

    2016-01-29 10:54:00
    python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范。于是总结了一些,供参考。 模块名: 模块应该使用尽可能短的、全小写命名,可以在模块命名时使用下划线以增强可读性。同样包的命名也应该是...
  • Python-命名规范

    2018-05-18 14:47:16
    文件名 全小写,可使用下划线 包 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入,如my_package。 模块 与包的规范同。如my_module。 类 总是使用首字母大写单词串。如MyClass。内部类...
  • Python命名规范

    2017-03-25 14:30:15
    Python命名规范
  • 以下分四种情况说明下划线的作用,python对成员域没有严格控制,大部份只是作为命名规范存在,以下英文部份摘自python官方网站_single_leading_underscore: weak "internal use" indicator.E.g. "from M import *" ...
  • Python命名规范

    2019-09-22 22:16:37
    文件名全小写,可使用下划线 包应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。 模块与包的规范同。如mymodule。 类总是使用首字母大写单词串。如MyClass。内部类可以使用额外的前导...
  • python命名规范

    2019-02-11 17:50:19
    文件名 全小写,可使用下划线 包 应该是简短的、小写的名字。如果下划线可以改善可读性可以加入。如mypackage。 模块 与包的规范同。如mymodule。 类 总是使用首字母大写单词串。如MyClass。内部类可以使用额外...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,481
精华内容 3,792
关键字:

python文件名命名规范

python 订阅