python批量替换文件(夹)中的某个字符与批量移动同名文件到新文件夹

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

作为一个初学python的学习者,为了更好的巩固所学知识,在此发表文章作为学习历程,该文章仅供学习用。
学python的初衷是看重了python的自动化处理,相比较其他语言,python的学习难度相对较低,语法等各方面更为容易被新手所接受。随着对python学习的加深,也慢慢意识到python的强大,后续有机会也会抽空学习爬虫,机器学习等方面编程。
本篇主要想记录一下学习os模块过程中,所编写的比较常用的简单工具。

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、OS模块是什么?

OS是 “operating system”的缩写,中文翻译就是操作系统,从我个人的理解,它能够方便的我们计算机中的操作系统进行一些基本的交互,能够对计算机中的文档与文件夹等进行批量化处理,能够有效地减少人工成本。os模块也是python中比较常用的一个模块。

二、工具

学习过程中基础知识如安装python,导入模块等在此不做介绍,本次仅记录学习过程中所编写的一些简单的工具。

一、批量替换文件(夹)中的某个字符

较为简单的一个小工具,主要用到的是os模块中的遍历(os.walk)功能和重命名(os.rename)。梳理代码即可完成对文件夹的遍历与名称修改。

代码如下(示例):

import  os
import sys

path = input(r"请输入对应修改文件路径")
path1 =input(r"请再次输入确定修改文件路径")
old_name = ""
new_name = ""
str = input("请输入所需替换字符")
revise = input("请输入需要替换成的字符")

for roots, dirs, files in os.walk(path):

    for dir in dirs:
        if str in dir:
            old_name = dir
            new_name = dir.replace(str,revise)
            old_path = os.path.join(path1, old_name)
            new_path = os.path.join(path1, new_name)
            os.rename(old_path, new_path)
            print(new_path)
    for file in files:
        if str in file:
            old_name = file
            new_name = file.replace(str, revise)
            old_path = os.path.join(path1, old_name)
            new_path = os.path.join(path1, new_name)
            os.rename(old_path, new_path)
            print(new_path)


该处使用的url网络请求的数据。


二、批量移动同名文件到新文件夹
相对于第一个工具,这个工具相对难度高一点,但理清楚逻辑也十分简单,写这个小工具的时候我还用到了另外一个模块(shutil模块),该模块能够对文件进行更高层面的操作,如压缩等。此工具主要用到了os模块中的遍历(os.listdir)、创建新文件夹(os.mkdir)与shutil模块中的复制(shutil.copy)。(注:os.walk 与 os.listdir 均为遍历,前者返回文件夹路径,文件名和文件夹内文件,后者仅返回路径下的文件名)

代码如下(示例):

import os
import shutil

path = input(r"请输入需要进行分类的目录")                      # 源文件目录
path2 = input(r"请输入需要存放的目录")                        # 新文件夹目录

filenames = os.listdir(path)
for names in filenames:
    name = names.split(".")[0]                           # 去除文件后缀名,方便后续创建文件夹
    name = name.split("-")[0]
    if os.path.exists(path2 + "\\" + name):              # 判断是否存在文件夹,如不存在即在else中创建新文件夹,存在即将同名文件copy过去。
        oldpath = os.path.join(path, names)
        newpath = os.path.join(path2, name)
        shutil.copy(oldpath, newpath)                     # 将文件复制到文件夹中。
        print(str(name))
    else:
        os.mkdir(path2 + "\\" + name)
        print("%s文件已创建" % name)
        oldpath = os.path.join(path, names)
        newpath = os.path.join(path2, name)
        shutil.copy(oldpath, newpath)                     # 将文件复制到文件夹中。
        print("已移动")
        pass



总结

两个工具是学习os模块初期,工作上需要的用到的功能,编写较为粗糙。通过代码可以封装为程序,需要时可直接双击使用。也作为我学习python路上的收获之一,以此文章作为保存。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值