文章目录
- 前言
- 一、OS模块是什么?
- 二、工具
- 总结
前言
作为一个初学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路上的收获之一,以此文章作为保存。