精华内容
下载资源
问答
  • 前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要Python学习...例子卡片1:批量修改文件后缀 本例子使用Python的os模块和 a...

    前言

    文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
    python免费学习资料以及群交流解答点击即可加入


    例子卡片1:批量修改文件后缀

    本例子使用Python的os模块和 argparse模块,将工作目录work_dir下所有后缀名为old_ext的文件修改为后缀名为new_ext

    通过本例子,大家将会大概清楚argparse模块的主要用法。

    1 导入模块

    import argparse
    import os
    

    2 定义脚本参数

    def get_parser():
        parser = argparse.ArgumentParser(
            description='工作目录中文件后缀名修改')
        parser.add_argument('work_dir', metavar='WORK_DIR', type=str, nargs=1,
                            help='修改后缀名的文件目录')
        parser.add_argument('old_ext', metavar='OLD_EXT',
                            type=str, nargs=1, help='原来的后缀')
        parser.add_argument('new_ext', metavar='NEW_EXT',
                            type=str, nargs=1, help='新的后缀')
        return parser
    

    3 后缀批量重命名

    def batch_rename(work_dir, old_ext, new_ext):
        """
        传递当前目录,原来后缀名,新的后缀名后,批量重命名后缀
        """
        for filename in os.listdir(work_dir):
            # 获取得到文件后缀
            split_file = os.path.splitext(filename)
            file_ext = split_file[1]
            # 定位后缀名为old_ext 的文件
            if old_ext == file_ext:
                # 修改后文件的完整名称
                newfile = split_file[0] + new_ext
                # 实现重命名操作
                os.rename(
                    os.path.join(work_dir, filename),
                    os.path.join(work_dir, newfile)
                )
        print("完成重命名")
        print(os.listdir(work_dir))
    

    4 实现main函数

    def main():
        """
        main函数
        """
        # 命令行参数
        parser = get_parser()
        args = vars(parser.parse_args())
        # 从命令行参数中依次解析出参数
        work_dir = args['work_dir'][0]
        old_ext = args['old_ext'][0]
        if old_ext[0] != '.':
            old_ext = '.' + old_ext
        new_ext = args['new_ext'][0]
        if new_ext[0] != '.':
            new_ext = '.' + new_ext
    
        batch_rename(work_dir, old_ext, new_ext)
    

    如果使用Pycharm,直接在configuration界面配置即可,如果使用vs code,可在launch.json文件提前设置好参数:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Python: batch_file_rename",
                "type": "python",
                "request": "launch",
                "program": "${file}",
                "console": "integratedTerminal",
                "args": [
                    "./a",
                    "py",
                    "txt"
                ]
            }
        ]
    }
    

    5 直接调用

    if __name__ == '__main__':
        main()
    

    如果提前设置好了参数,则直接执行 batch_file_rename.py

    如果未设置三个参数,需要在命令行这么传入:

    batch_file_rename.py a py txt
    
    展开全文
  • import argparse import os def get_parser(): parser = argparse.ArgumentParser( description='工作目录中文件后缀修改') parser.add_argument('work_dir', metavar='WORK_DIR', type=str, nargs=1, ...
    import argparse
    import os
    
    def get_parser():
        parser = argparse.ArgumentParser(
            description='工作目录中文件后缀名修改')
        parser.add_argument('work_dir', metavar='WORK_DIR', type=str, nargs=1,
                            help='修改后缀名的文件目录')
        parser.add_argument('old_ext', metavar='OLD_EXT',
                            type=str, nargs=1, help='原来的后缀')
        parser.add_argument('new_ext', metavar='NEW_EXT',
                            type=str, nargs=1, help='新的后缀')
        return parser
    
    def batch_rename(work_dir, old_ext, new_ext):
        """
        传递当前目录,原来后缀名,新的后缀名后,批量重命名后缀
        """
        for filename in os.listdir(work_dir):
            # 获取得到文件后缀
            split_file = os.path.splitext(filename)
            file_ext = split_file[1]
            # 定位后缀名为old_ext 的文件
            if old_ext == file_ext:
                # 修改后文件的完整名称
                newfile = split_file[0] + new_ext
                # 实现重命名操作
                os.rename(
                    os.path.join(work_dir, filename),
                    os.path.join(work_dir, newfile)
                )
        print("完成重命名")
        print(os.listdir(work_dir))
    
    def main():
        """
        main函数
        """
        # 命令行参数
        parser = get_parser()
        args = vars(parser.parse_args())
        # 从命令行参数中依次解析出参数
        work_dir = args['work_dir'][0]
        old_ext = args['old_ext'][0]
        if old_ext[0] != '.':
            old_ext = '.' + old_ext
        new_ext = args['new_ext'][0]
        if new_ext[0] != '.':
            new_ext = '.' + new_ext
    
        batch_rename(work_dir, old_ext, new_ext)
    
    if __name__ == '__main__':
        main()
    #   如果未设置三个参数,需要在命令行这么传入:
    #   btch_file_rename.py c
    
    展开全文
  • /usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Dec 19 18:53:47 2018 @author: bdf """ import os # 列出当前目录下所有的文件 files = os.listdir('.') #print...
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    """
    Created on Wed Dec 19 18:53:47 2018
    
    @author: bdf
    """
    import os
    # 列出当前目录下所有的文件
    files = os.listdir('.')
    #print('files',files)
    for filename in files:
        portion = os.path.splitext(filename)
        # 如果后缀是.SSM
        if portion[1] == ".SSM":  
            # 重新组合文件名和后缀名
            newname = portion[0] + ".txt"   
            os.rename(filename,newname)

     

    展开全文
  • 近期下载了很多各种教程, 但是不幸的是后缀名都是 “.mp4”, 而本人喜欢 “.rmvb” 后缀,由于有轻微洁癖, 受不了后面的 “.mp4” 缀, 但是手动修改又太过繁琐, 所以用近期刚学的 Python 来偷懒吧 ! : ) 如图为程序...
  • ipad的goodreader对JS文件支持不太好,虽然可以读取它但总是无法退出,回不了goodreader的主界面,因此我需要把js文件批量变成纯文本。基于这个目的,我搞了下面一个小应用:复制代码 代码如下:# -*- coding:utf-8 -*...
  • 假设文件夹下只有4、5 张,手动修改的话是没问题,但如果数量达到上百张,就有点让人头疼,这个代码块正是用来解决此类问题的 import os def batch_rename(work_dir, old_ext, new_ext): # files = os.listdir...

    日常工作中,可能会有这样的需求:把一个文件夹下所有 jpg 图片转化为 png ;假设文件夹下只有4、5 张,手动修改的话是没问题,但如果数量达到上百张,就有点让人头疼,这个代码块正是用来解决此类问题的

    import os
    
    
    def batch_rename(work_dir, old_ext, new_ext):
        # files = os.listdir(work_dir)
        for filename in os.listdir(work_dir):
            # Get the file extension
            split_file = os.path.splitext(filename)
            # Unpack tuple element
            root_name, file_ext = split_file
            # Start of the logic to check the file extensions, if old_ext = file_ext
            if old_ext == file_ext:
                # Returns changed name of the file with new extention
                newfile = root_name + new_ext
    
                # Write the files
                os.rename(
                    os.path.join(work_dir, filename),
                    os.path.join(work_dir, newfile)
                )
        print("rename is done!")
        print(os.listdir(work_dir))
    
    展开全文
  • 实现遍历dir目录下,所有文件(包含子文件夹的文件) :param dir:指定文件夹目录 :return:包含所有文件的列表->list ''' # parent:父目录, filenames:该目录下所有文件夹,filenames:该目录下的文件名 files_...
  • os.remove(filepath) print("删除重名文件 " + name) pass else: os.rename(filepath, filepath+".jpg") print(name + " 名字变更为 " + name+".jpg") 替换path里的内容为你需要修改文件后缀的根目录,替换jpg为你...
  • /usr/bin/python # -*- coding:utf-8 -*- import os def BatRename(path):  filelist = [item for item in os.listdir(path) if os.path.isfile(os.path.join(path,item)) \      and os.path.split
  • import os,string def s_rename(path,old_ext,new_ext): for (path, dirs, files) in os.walk(path): for filename in files: ext=os.path.splitext(filename)[1] ...
  • 今天下载到一本书的python源代码,但是后缀都是.txt,一个一个后缀去改很麻烦,于是想办法用python脚本批量修改文件后缀。有参考别人的部分代码, #coding=utf-8 import os import os.path   # 目录名 rootdir =...
  • 本文实例讲述了Python实现的批量修改文件后缀名操作。分享给大家供大家参考,具体如下: windows和linux下都支持该程序  以下程序可以进行批量修改文件后缀名: #!/usr/bin/env python #coding:utf8 #! python3 #...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 162
精华内容 64
关键字:

python批量修改文件后缀

python 订阅