python常用模块
python运维开发常用模块(四)文件对比模块difflib

python运维开发常⽤模块(四)⽂件对⽐模块difflib1.difflib介绍difflib作为 Python的标准库模块,⽆需安装,作⽤是对⽐⽂本之间的差异,且⽀持输出可读性⽐较强的HTML⽂档,与Linux下的diff命令相似。
我们可以使⽤difflib对⽐代码、配置⽂件的差别,在版本控制⽅⾯是⾮常有⽤。
Python 2.3或更⾼版本默认⾃带difflib模块,⽆需额外安装。
⽰例1:两个字符串的差异对⽐[yhl@myhost part2]$ cat simple1.py#!/usr/bin/python#_*_coding:utf-8_*_#****************************************************************## ScriptName: simple1.py# Author: BenjaminYang# Create Date: 2019-05-13 11:08# Modify Author: BenjaminYang# Modify Date: 2019-05-13 11:08# Function:#***************************************************************#import difflibtext1 = """text1: #定义字符串1This module provides classes and functions for comparing sequences.including HTML and context and unified diffs.difflib document v7.4add string"""text1_lines=text1.splitlines() #以⾏进⾏分隔text2="""text2: #定义字符串2This module provides classes and functions for Comparing sequences.including HTML and context and unified diffs.difflib document v7.5"""text2_lines=text2.splitlines()d=difflib.Differ() #创建Differ()对象diff=pare(text1_lines,text2_lines) #采⽤compare⽅法对字符串进⾏⽐较print'\n'.join(list(diff))本⽰例采⽤Differ()类对两个字符串进⾏⽐较,另外difflib的 SequenceMatcher()类⽀持任意类型序列的⽐较,HtmlDiff()类⽀持将⽐较结果输出为HTML格式⽰例运⾏结果符号含义说明⽣成美观的对⽐HTML格式⽂档采⽤HtmlDiff()类将新⽂件命名为simple2.py,运⾏# python simple2.py>diff.html,再使⽤浏览器打开diff.html⽂件,结果如图⽰2-2所⽰,HTML⽂档包括了⾏号、差异标志、图例等信息,可读性增强了许多的make_file()⽅法就可以⽣成美观的HTML ⽂档,对⽰例1中代码按以下进⾏修改:⽰例2:对⽐Nginx配置⽂件差异当我们维护多个Nginx配置时,时常会对⽐不同版本配置⽂件的差异,使运维⼈员更加清晰地了解不同版本迭代后的更新项,实现的思路是读取两个需对⽐的配置⽂件,再以换⾏符作为分隔符,调⽤ difflib.HtmlDiff()⽣成HTML格式的差异⽂档。
python常用模块及第三方库功能简介

python常⽤模块及第三⽅库功能简介前⾔: Python吸引⼈的⼀个出众的优点就是它有众多的第三⽅库函数,可以更⾼效率的实现开发,经过整理与⽐对,整理了运维相关的常⽤模块,并将其功能简介,对其中重要的常⽤模块,接下来的博客会进⾏相应的详细介绍与功能使⽤介绍。
Python运维常⽤的20个库:1、psutil是⼀个跨平台库(https:///giampaolo/psutil)能够实现获取系统运⾏的进程和系统利⽤率(内存,CPU,磁盘,⽹络等),主要⽤于系统监控,分析和系统资源及进程的管理。
2、IPy(/haypo/python-ipy),辅助IP规划。
3、dnspython()Python实现的⼀个DNS⼯具包。
4、difflib:difflib作为Python的标准模块,⽆需安装,作⽤是对⽐⽂本之间的差异。
5、filecmp:系统⾃带,可以实现⽂件,⽬录,遍历⼦⽬录的差异,对⽐功能。
6、smtplib:发送电⼦邮件模块7、pycurl()是⼀个⽤C语⾔写的libcurl Python实现,功能强⼤,⽀持的协议有:FTP,HTTP,HTTPS,TELNET等,可以理解为Linux下curl命令功能的Python封装。
8、XlsxWriter:操作Excel⼯作表的⽂字,数字,公式,图表等。
9、rrdtool:⽤于跟踪对象的变化,⽣成这些变化的⾛⾛势图10、scapy(/projects/scapy/)是⼀个强⼤的交互式数据包处理程序,它能够对数据包进⾏伪造或解包,包括发送数据包,包嗅探,应答和反馈等功能。
11、Clam Antivirus免费开放源代码防毒软件,pyClamad,可以让Python模块直接使⽤ClamAV病毒扫描守护进程calmd。
12、pexpect:可以理解成Linux下expect的Python封装,通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令⾏进⾏⾃动交互,⽽⽆需⼈⼯⼲涉来达到⾃动化的⽬的。
Python常用模块os.path之文件及路径操作方法

Python常⽤模块os.path之⽂件及路径操作⽅法以下是 os.path 模块的⼏种常⽤⽅法:⽅法说明os.path.abspath(path)返回绝对路径os.path.basename(path)返回⽂件名monprefix(list)返回list(多个路径)中,所有path共有的最长的路径os.path.dirname(path)返回⽂件路径os.path.exists(path)如果路径 path 存在,返回 True;如果路径 path 不存在,返回 False。
os.path.lexists路径存在则返回True,路径损坏也返回Trueos.path.expanduser(path)把path中包含的"~"和"~user"转换成⽤户⽬录os.path.expandvars(path)根据环境变量的值替换path中包含的"$name"和"${name}"os.path.getatime(path)返回最近访问时间(浮点型秒数)os.path.getmtime(path)返回最近⽂件修改时间os.path.getctime(path)返回⽂件 path 创建时间os.path.getsize(path)返回⽂件⼤⼩,如果⽂件不存在就返回错误os.path.isabs(path)判断是否为绝对路径os.path.isfile(path)判断路径是否为⽂件os.path.isdir(path)判断路径是否为⽬录os.path.islink(path)判断路径是否为链接os.path.ismount(path)判断路径是否为挂载点os.path.join(path1[, path2[, ...]])把⽬录和⽂件名合成⼀个路径os.path.normcase(path)转换path的⼤⼩写和斜杠os.path.normpath(path)规范path字符串形式os.path.realpath(path)返回path的真实路径os.path.relpath(path[, start])从start开始计算相对路径os.path.samefile(path1, path2)判断⽬录或⽂件是否相同os.path.sameopenfile(fp1, fp2)判断fp1和fp2是否指向同⼀⽂件os.path.samestat(stat1, stat2)判断stat tuple stat1和stat2是否指向同⼀个⽂件os.path.split(path)把路径分割成 dirname 和 basename,返回⼀个元组os.path.splitdrive(path)⼀般⽤在 windows 下,返回驱动器名和路径组成的元组os.path.splitext(path)分割路径,返回路径名和⽂件扩展名的元组os.path.splitunc(path)把路径分割为加载点与⽂件os.path.walk(path, visit, arg)遍历path,进⼊每个⽬录都调⽤visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表⽰当前⽬录的⽬录名,names代表当前⽬录下的所有⽂件名,args 则为walk的第三个参数os.path.supports_unicode_filenames设置是否⽀持unicode路径名os.path.abspath(path)输⼊相对路径,返回绝对路径Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32 Type "copyright", "credits" or "license()" for more information.>>> import os>>> print(os.path.abspath("."))C:\Users\28914\AppData\Local\Programs\Python\Python37os.path.basename(path)返回路径最后的⽂件或⽬录名,单纯的字符串处理,不会管该路径是否存在>>> import os>>> os.path.basename("E:\\abc\\efg.txt")'efg.txt'和os.path.basename相反,返回路径中去除了最后的⽂件或⽬录名后的部分,也是单纯的字符串处理>>> import os>>> os.path.dirname("E:\\abc\\efg.txt")'E:\\abc'os.path.split(path)单纯的字符串处理,分割路径,返回由其⽬录名和⽂件名组成的元组>>> import os>>> os.path.split("E:\\abc\\efg.txt")('E:\\abc', 'efg.txt')os.path.splitext(path)单纯的字符串处理,分割路径,返回由其⽂件名和扩展名组成的元组>>> import os>>> os.path.splitext("E:\\abc\\efg.txt")('E:\\abc\\efg', '.txt')os.path.join(dirpath,filename)将路径与⽂件名拼接,根据操作系统⾃动使⽤相应的路径分隔符,Windows⽤“”,Linux⽤“/”>>> import os>>> os.path.splitext("E:\\abc\\efg.txt")('E:\\abc\\efg', '.txt')os.path.exists(path)判断⽂件或⽬录是否存在,返回True或False>>> import os>>> os.path.exists("E:\\abc\\efg.txt")Falseos.path.isdir(path)判断路径是不是⽂件夹,路径不存在同样返回False>>> import os>>> os.path.isdir("E:\\abc\\efg.txt")Falseos.path.isfile(path)判断路径是不是⽂件,路径不存在同样返回False>>> import os>>> os.path.isfile("E:\\abc\\efg.txt")Falseos.path.getsize(path)获取⽂件⼤⼩,单位字节,⽂件不存在则报错,不能直接⽤于⽂件夹>>> import os>>> os.path.getsize("D:\\2019-11-07.txt")5973获取⽂件创建时间os.path.getmtime(path)获取⽂件最后修改时间os.path.getatime(path)获取⽂件最近访问时间总结以上所述是⼩编给⼤家介绍的Python常⽤模块os.path之⽂件及路径操作⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
浅谈python中常用的excel模块库

浅谈python中常⽤的excel模块库⽬录openpyxl如何安装:使⽤效果之⼀:xlwings如何安装:使⽤效果之⼀:XlsxWriter如何安装:使⽤效果之⼀:Tablibxlrd如何安装:xlwtxlutils如何安装:openpyxlopenpyxl是⼀个Python库,⽤于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm⽂件。
它的诞⽣是因为缺少可从Python本地读取/写⼊Office Open XML格式的库。
如何安装:使⽤pip安装openpyxl$ pip install openpyxl使⽤效果之⼀:⽐如可以直接读取表格数据后综合输出写⼊到后⾯的⼀列中xlwingsxlwings是BSD许可的Python库,可轻松从Excel调⽤Python,同样也可在python中轻易调⽤excel。
它使⽤了⼲净且功能强⼤的Python代码替换VBA宏,可以同时⽀持在Windows和Mac上⼯作,同时在Excel和WPS都可兼容使⽤。
功能⻬全,⽀持Excel的新建、打开、修改、保存。
如何安装:pip install xlwings使⽤效果之⼀:可以使⽤python语⾔对Excel、WPS表格进⾏操作。
XlsxWriterXlsxWriter是⼀个Python模块,⽤于以Excel 2007+ XLSX⽂件格式编写⽂件。
它可以⽤于将⽂本,数字和公式写⼊多个⼯作表,并且⽀持诸如格式设置,图像,图表,⻚⾯设置,⾃动过滤器,条件格式设置等功能。
与编写Excel⽂件的替代Python模块相⽐,XlsxWriter具有⼀些优点和缺点。
优点:1.它⽐任何其他模块⽀持更多的Excel功能。
2.它具有由Excel⽣成的⽂件的⾼度保真度。
在⼤多数情况下,⽣成的⽂件与Excel⽣成的⽂件100%等价。
3.它具有⼤量的⽂档,⽰例⽂件和测试。
4.它速度很快,即使对于⾮常⼤的输出⽂件,也可以配置为使⽤很少的内存。
python中常用的内置模块汇总

python中常⽤的内置模块汇总内置模块(⼀)Python内置的模块有很多,我们也已经接触了不少相关模块,接下来咱们就来做⼀些汇总和介绍。
内置模块有很多 & 模块中的功能也⾮常多,我们是没有办法注意全局给⼤家讲解,在此我会整理出项⽬开发最常⽤的来进⾏讲解。
osimport os# 1. 获取当前脚本绝对路径"""abs_path = os.path.abspath(__file__)print(abs_path)# 2. 获取当前⽂件的上级⽬录base_path = os.path.dirname( os.path.dirname(路径) )print(base_path)# 3. 路径拼接p1 = os.path.join(base_path, 'xx')print(p1)p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')print(p2)# 4. 判断路径是否存在exists = os.path.exists(p1)print(exists)# 5. 创建⽂件夹os.makedirs(路径)path = os.path.join(base_path, 'xx', 'oo', 'uuuu')if not os.path.exists(path):os.makedirs(path)# 6. 是否是⽂件夹file_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')is_dir = os.path.isdir(file_path)print(is_dir) # Falsefolder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')is_dir = os.path.isdir(folder_path)print(is_dir) # True# 7. 删除⽂件或⽂件夹os.remove("⽂件路径")path = os.path.join(base_path, 'xx')shutil.rmtree(path)listdir,查看⽬录下所有的⽂件walk,查看⽬录下所有的⽂件(含⼦孙⽂件)import os"""data = os.listdir("/Users/feimouren/PycharmProjects/luffyCourse/day14/commons")print(data)# ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']# ⽆法查看⽂件夹中⼦⽂件夹中的⽂件要遍历⼀个⽂件夹下的所有⽂件,例如:遍历⽂件夹下的所有mp4⽂件 data获取到的是⼀个⽣成器,在编列⽣成器时,会获取到三个元素,1.⽂件夹路径,2.⽂件夹中的⽂件夹,3.⽂件在遍历时,如果⽂件夹中还有⽂件夹,那么会继续遍历这个⽂件夹同样会获取data = os.walk("/Users/wupeiqi/Documents/视频教程/飞Python/mp4")for path, folder_list, file_list in data:for file_name in file_list:file_abs_path = os.path.join(path, file_name)ext = file_abs_path.rsplit(".",1)[-1]if ext == "mp4":print(file_abs_path)shutilimport shutil# 1. 删除⽂件夹"""path = os.path.join(base_path, 'xx')shutil.rmtree(path)# 2. 拷贝⽂件夹shutil.copytree("/Users/wupeiqi/Desktop/图/csdn/","/Users/wupeiqi/PycharmProjects/CodeRepository/files")# 3.拷贝⽂件shutil.copy("/Users/wupeiqi/Desktop/图/csdn/************************","/Users/wupeiqi/PycharmProjects/CodeRepository/")shutil.copy("/Users/wupeiqi/Desktop/图/csdn/************************","/Users/wupeiqi/PycharmProjects/CodeRepository/x.png")# 4.⽂件或⽂件夹重命名shutil.move("/Users/wupeiqi/PycharmProjects/CodeRepository/x.png","/Users/wupeiqi/PycharmProjects/CodeRepository/xxxx.png")shutil.move("/Users/wupeiqi/PycharmProjects/CodeRepository/files","/Users/wupeiqi/PycharmProjects/CodeRepository/images")# 5. 压缩⽂件# base_name,压缩后的压缩包⽂件# format,压缩的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".# root_dir,要压缩的⽂件夹路径# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')# 6. 解压⽂件# filename,要解压的压缩包⽂件# extract_dir,解压的路径# format,压缩⽂件格式# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')sysimport sys# 1. 获取解释器版本"""print(sys.version)print(sys.version_info)print(sys.version_info.major, sys.version_info.minor, sys.version_info.micro)# 2. 导⼊模块路径print(sys.path)randomimport random# 1. 获取范围内的随机整数v = random.randint(10, 20)print(v)# 2. 获取范围内的随机⼩数v = random.uniform(1, 10)# 3. 随机抽取⼀个元素v = random.choice([11, 22, 33, 44, 55])# 4. 随机抽取多个元素v = random.sample([11, 22, 33, 44, 55], 3)# 5. 打乱顺序data = [1, 2, 3, 4, 5, 6, 7, 8, 9]random.shuffle(data)print(data)hashlibimport hashlibhash_object = hashlib.md5()hash_object.update("武沛齐".encode('utf-8'))result = hash_object.hexdigest()print(result)import hashlibhash_object = hashlib.md5("iajfsdunjaksdjfasdfasdf".encode('utf-8'))hash_object.update("武沛齐".encode('utf-8'))result = hash_object.hexdigest()print(result)"""在加密时,为了防⽌密码被撞出来,通常会在第⼆⾏代码处加盐,即添加我们⾃⼰知道的随机的字符串,这样就可以防⽌别⼈破解密码"""configparserxmljsonjson模块,是python内部的⼀个模块,可以将python的数据格式转换为json格式的数据,也可以将json格式的数据转换为python的数据格式。
python eml解析的模块介绍

python eml解析的模块介绍EML是一种常见的电子邮件文件格式,通常用于存储和交换电子邮件。
在使用Python进行EML解析时,可以使用多个模块来处理和提取EML文件中的各个部分。
以下是一些常用的Python模块,可以用于解析EML文件:1. email模块:Python标准库中的email模块提供了一套用于处理EML文件的类和函数。
它允许您解析EML文件中的邮件头、正文、附件等部分。
通过使用email模块,您可以轻松地访问邮件的各个组成部分,并进行需要的操作。
以下是email模块的一些常见类和函数:- email.message.Message:表示EML文件的一封邮件。
可以使用该类的方法来获取邮件头、正文和附件等部分。
- email.parser.Parser:用于将原始EML文件解析为email.message.Message对象。
- email.utils.parseaddr():用于解析EML文件中的发件人和收件人地址。
- email.utils.parseaddr():用于解析EML文件中的日期和时间。
2. cemail模块:cemail模块是一个第三方Python库,提供了更高效的方式来解析EML文件。
它是对Python标准库中email模块的一个优化版本,可以处理更大的EML文件,并提供更快的性能。
cemail模块的用法与email模块类似,但在处理大量的EML文件时,使用cemail模块可能会更加高效。
3. eml_parser模块:eml_parser模块是一个基于C的Python扩展,通过解析原始EML文件来提取邮件的各个部分。
它可以解析大型EML文件,并提供了访问邮件头、正文和附件的方法。
eml_parser模块的使用方法简单且高效,适用于需要处理大量EML文件的应用场景。
4. mail-parser模块:mail-parser模块是一个功能强大的EML解析工具,可以处理邮件的各个部分,并提供了详细的元数据和附件信息。
Python常用的数据分析库有哪些?Python数据分析模块介绍

Python常用的数据分析库有哪些?Python数据分析模块介绍。
Python本身的数据分析功能并不强,需要一些第三方的扩展库来增强它的能力。
们课程用到的库包括NumPy、Pandas、Matplotlib、Seaborn、NLTK等,接下来将针对相关库一个简单的介绍,方便后面章节的学习。
在Python中,常用的数据分析库主要有以下几种:1、NumPy库NumPyPython源的数值计算扩展工具,它了Python对多维数组的支持,能够支持高级的维度数组与矩阵运算。
此外,针对数组运算也了量的数学函数库。
NumPy部分Python科学计算的基础,它具有以下功能:(1)快速的多维数据对象ndarray。
(2)高性能科学计算和数据分析的基础包。
(3)多维数组(矩阵)具有矢量运算能力,快速、节省空间。
(4)矩阵运算。
无需循环,可完成类似Matlab中的矢量运算。
(5)线性代数、随机数生成以及傅里叶变换功能。
2、Pandas库Pandas一个基于NumPy的数据分析包,它为了解决数据分析任务而创建的。
Pandas中纳入了量库和标准的数据模型,了地操作型数据集所需要的函数和方法,使用户能快速便捷地处理数据。
Pandas作为强而的数据分析环境中的重要因素之一,具有以下特:(1)一个快速的DataFrame对象,具有默认和自定义的索引。
(2)用于在内存数据结构和不同文件格式中读取和写入数据,比如CSV和文本文件、Excel文件及SQL数据库。
(3)智能数据对齐和缺失数据的集成处理。
(4)基于标签的切片、花式索引和数据集的子集。
(5)可以删除或入来自数据结构的列。
(6)按数据分组进行聚合和转换。
(7)高性能的数据合并和连接。
(8)时间序列功能。
Python与Pandas在各种学术和商业领域中都有应用,包括金融、神经科学、经济学、统计学、广告、网络分析等。
3、Matplotlib库Matplotlib一个用在Python中绘制数组的2D图形库,虽然它起源于模仿MATLAB图形命令,但它独立于MATLAB,可以通过Pythonic和面向对象的使用,Python中最出色的绘图库。
Python常用模块——Colorama模块

Python常⽤模块——Colorama模块简介Python的Colorama模块,可以跨多终端,显⽰字体不同的颜⾊和背景,只需要导⼊colorama模块即可,不⽤再每次都像linux⼀样指定颜⾊。
1. 安装colorama模块pip install colorama2. 常⽤格式常数Fore是针对字体颜⾊,Back是针对字体背景颜⾊,Style是针对字体格式Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.Style: DIM, NORMAL, BRIGHT, RESET_ALL注意,颜⾊RED,GREEN都需要⼤写,先指定是颜⾊和样式是针对字体还是字体背景,然后再添加颜⾊,颜⾊就是英⽂单词指定的颜⾊ from colorama import Fore, Back, Styleprint(Fore.RED + 'some red text')print(Back.GREEN + 'and with a green background')print(Style.DIM + 'and in dim text')print(Style.RESET_ALL)print('back to normal now') 输出结果# 记得要及时关闭colorma的作⽤范围# 如果不关闭的话,后⾯所有的输出都会是你指定的颜⾊print(Style.RESET_ALL)3.Init关键字参数:init()接受⼀些* * kwargs覆盖缺省⾏为,autoreset是⾃动恢复到默认颜⾊init(autoreset = False):init(wrap=True):The default behaviour is to convert if on Windows and output is to a tty (terminal).在windows系统终端输出颜⾊要使⽤init(wrap=True)#!/usr/bin/env python#encoding: utf-8from colorama import init, Fore, Back, Styleif __name__ == "__main__":init(autoreset=True) # 初始化,并且设置颜⾊设置⾃动恢复print(Fore.RED + 'some red text')print(Back.GREEN + 'and with a green background')print(Style.DIM + 'and in dim text')# 如果未设置autoreset=True,需要使⽤如下代码重置终端颜⾊为初始设置#print(Fore.RESET + Back.RESET + Style.RESET_ALL) autoreset=Trueprint('back to normal now')输出结果4.使⽤实例import sysimport osimport randomimport stringfrom colorama import Fore,Style,initimport platformdef print_arg(arg):"""打印参数:param arg::return:"""for ind, val in enumerate(arg):if ind == 0:print_color(Fore.YELLOW,r"------执⾏%s输⼊参数为--------"% val) else:print(val, end=",")def print_color(color, mes=""):"""获得系统平台windows终端需要设置init(wrap=True):param color::param mes::return:"""v_system = platform.system()if v_system != 'Windows':print(color+mes)else:# init(wrap=True)print(color+mes)# 获得系统参数v_arg = sys.argvinit(autoreset=True) # 初始化,并且设置颜⾊设置⾃动恢复# print_color(Fore.YELLOW+platform.system())if len(v_arg) != 4:# print(platform.system())print_arg(v_arg)print_color(Fore.RED,"---参数输⼊错误--")print_color(Fore.RED, "fileStrReplace.py ⽂件名旧字符串新字符串") else:f_name = v_arg[1].strip()old_str = v_arg[2].strip() # 旧字符new_str = v_arg[3].strip() # 替换的新字符f_new_name = "%s.new" % f_namereplace_count = 0 # 字符替换次数if not os.path.exists(f_name):print_color(Fore.YELLOW, "%s⽂件不存在" % f_name)f_new = open(f_new_name, 'w')f = open(f_name, "r",)for line in f: # 读取⼤⽂件if old_str in line:new_line = line.replace(old_str, new_str) # 字符替换replace_count += 1else:new_line = linef_new.write(new_line) # 内容写新⽂件f.close()f_new.close()if replace_count == 0:print_color(Fore.YELLOW,"字符%s不存在" % (old_str))else:bak_f = f_name + ''.join(random.sample(string.digits, 6))os.rename(f_name, bak_f) # 备份旧⽂件os.rename(f_new_name, f_name) # 把新⽂件名字改成原⽂件的名字,就把之前的覆盖掉了print_color(Fore.GREEN, "⽂件替换成功,[字符%s替换%s]共%s次,源⽂件备份[%s]" % (old_str,new_str, replace_count,bak_f)) # print_color(Style.RESET_ALL) # 还原默认颜⾊。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
python中os模块中文帮助文档文章分类:Python编程python中os模块中文帮助文档翻译者:butalnd 翻译于2010.1.7——2010.1.8,个人博客:/ 注此模块中关于unix中的函数大部分都被略过,翻译主要针对WINDOWS,翻译速度很快,其中很多不足之处请多多包涵。
这个模块提供了一个轻便的方法使用要依赖操作系统的功能。
如何你只是想读或写文件,请使用open(),如果你想操作文件路径,请使用os.path模块,如果你想在命令行中,读入所有文件的所有行,请使用fileinput模块。
使用tempfile模块创建临时文件和文件夹,更高级的文件和文件夹处理,请使用shutil模块。
os.error内建OSError exception的别名。
导入依赖操作系统模块的名字。
下面是目前被注册的名字:'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'.下面的function和data项是和当前的进程和用户有关os.environ一个mapping对象表示环境。
例如,environ['HOME'] ,表示的你自己home文件夹的路径(某些平台支持,windows不支持),它与C中的getenv("HOME")一致。
这个mapping对象在os模块第一次导入时被创建,一般在python启动时,作为site.py处理过程的一部分。
在这一次之后改变environment不影响os.environ,除非直接修改os.environ.注:putenv()不会直接改变os.environ,所以最好是修改os.environ注:在一些平台上,包括FreeBSD和Mac OS X,修改environ会导致内存泄露。
参考putenv()的系统文档。
如果没有提供putenv(),mapping的修改版本传递给合适的创建过程函数,将导致子过程使用一个修改的environment。
如果这个平台支持unsetenv()函数,你可以删除mapping中的项目。
当从os.environ使用pop()或clear()删除一个项目时,unsetenv()会自动被调用(版本2.6)。
os.chdir(path)os.fchdir(fd)os.getcwd()这些函数在Files和Directories中。
os.ctermid()返回进程控制终端的文件名。
在unix中有效,请查看相关文档.。
os.getegid()返回当前进程有效的group的id。
对应于当前进程的可执行文件的"set id "的bit位。
在unix 中有效,请查看相关文档.。
os.geteuid()返回当前进程有效的user的id。
在unix中有效,请查看相关文档.。
os.getgid()返回当前进程当前group的id。
在unix中有效,请查看相关文档.。
os.getgroups()返回当前进程支持的groups的id列表。
在unix中有效,请查看相关文档.。
os.getlogin()返回进程控制终端登陆用户的名字。
在大多情况下它比使用environment变量LOGNAME 来得到用户名,或使用pwd.getpwuid(os.getuid())[0] 得到当前有效用户id的登陆名更为有效。
在unix中有效,请查看相关文档.。
os.getpgid(pid)返回pid进程的group id.如果pid为0,返回当前进程的group id。
在unix中有效,请查看相关文档.。
os.getpgrp()返回当前进程组的id.在unix中有效,请查看相关文档.。
os.getpid()返回当前进程的id.在unix,Windows中有效。
os.getppid()返回当前父进程的id.在unix中有效,请查看相关文档.。
os.getuid()返回当前当前进程用户的id.在unix中有效,请查看相关文档.。
os.getenv(varname[, value])返回environment变量varname的值,如果value不存在,默认为None.在大多版本的unix,Windows中有效。
os.putenv(varname, value)设置varname环境变量为value值。
此改变影响以os.system(), popen() 或fork()和execv()启动的子进程。
在大多版本的unix,Windows中有效。
当支持putenv()时,在os.environ分配项目时,自动调用合适的putenv()。
然而,调用putenv() 不会更新os.environ,所以直接设置os.environ的项。
os.setegid(egid)设置当前进程有效组的id.在unix中有效,请查看相关文档.。
os.seteuid(euid)设置当前进程有效用户的id.在unix中有效,请查看相关文档.。
os.setgid(gid)设置当前进程组的id.在unix中有效,请查看相关文档.。
os.setgroups(groups)设置当前进程支持的groups id列表。
groups必须是个列表,每个元素必须是个整数,这个操作只对超级用户有效,在unix中有效,请查看相关文档.。
os.setpgrp()调用system的setpgrp()或setpgrp(0, 0)() ,依赖于使用的是哪个版本的system. 请查看Unix 手册. 在unix中有效,请查看相关文档.。
os.setpgid(pid, pgrp)调用system的setpgid()设置pid进程group的id为pgrp.请查看Unix手册. 在unix中有效,请查看相关文档.。
os.setreuid(ruid, euid)设置当前process当前和有效的用户id. 在unix中有效,请查看相关文档.。
os.setregid(rgid, egid)设置当前process当前和有效的组id. 在unix中有效,请查看相关文档.。
os.getsid(pid)调用system的getsid(). 请查看Unix手册. 在unix中有效,请查看相关文档.。
os.setsid()调用system的setsid().请查看Unix手册. 在unix中有效,请查看相关文档.。
os.setuid(uid)设置当前user id. 在unix中有效,请查看相关文档.。
os.strerror(code)返回程序中错误code的错误信息。
在某些平台上,当给一个未知的code,strerror()返回NULL,将抛出ValueError。
在unix,Windows中有效。
os.umask(mask)设置当前权限掩码,同时返回先前的权限掩码。
在unix,Windows中有效。
os.fdopen(fd[, mode[, bufsize]])返回一个文件描述符号为fd的打开的文件对象。
mode和bufsize参数,和内建的open()函数是同一个意思。
在unix,Windows中有效。
mode必须以'r', 'w',或者'a'开头, 否则抛出ValueError.以'a'开头的mode, 文件描述符中O_APPEND位已设置.os.popen(command[, mode[, bufsize]])给或从一个command打开一个管理。
返回一个打开的连接到管道文件对象,文件对象可以读或写,在于模式是'r'(默认) 或'w',bufsize参数,和内建的open()函数是同一个意思。
command返回的状态(在wait()函数中编码) 和调用文件对象的close()返回值一样, 除非返回值是0(无错误终止), 返回None . 在unix,Windows中有效。
在2.6版本中已抛弃. 使用subprocess模块.os.tmpfile()返回一个打开的模式为(w+b)的文件对象.这文件对象没有文件夹入口,没有文件描述符,将会自动删除. 在unix,Windows中有效。
从version 2.6起: 所有的popen*()函数已抛弃. 使用subprocess模块.os.popen2(cmd[, mode[, bufsize]])os.popen3(cmd[, mode[, bufsize]])os.popen4(cmd[, mode[, bufsize]])16.1.3. 文件描述符操作这些函数操作使用文件描述符引用的I/O stream。
文件描述符是与当前进程打开的文件相对应的一些小整数. 例如标准输入的通常文件描述符中0, 标准输出是1,标准错误是2. 进程打开的更多文件将被分配为3, 4, 5,等. 这“文件描述符”有一点迷惑性;在Unix平台上, socket和pipe 通常也使用文件描述符引用.os.close(fd)关闭文件描述符fd. 在unix,Windows中有效。
这函数是为低层的I/O服务的,应用在os.open()或pipe()返回的文件描述符上。
关闭一个由内建函数open()或popen()或fdopen()打开的文件对象,使用close()方法。
os.closerange(fd_low, fd_high)关闭从fd_low(包含)到fd_high(不包含)所有的文件描述符,忽略错误。
在unix,Windows 中有效。
等同于:for fd in xrange(fd_low, fd_high):try:os.close(fd)except OSError:passos.dup(fd)返回文件描述符fd的cope. 在unix,Windows中有效。
os.dup2(fd, fd2)复制文件描述符fd到fd2, 如果有需要首先关闭fd2. 在unix,Windows中有效。
os.fchmod(fd, mode)改变文件描述符为fd的文件’mode‘为mode. 查看chmod()文档中mode的值. 在unix中有效,请查看相关文档.。
version 2.6中新增.os.fchown(fd, uid, gid)改变文件描述符为fd的文件的所有者和group的id为uid和gid. 如果不想它们中的一个, 就设置为-1. 在unix中有效,请查看相关文档.。
version 2.6中新增.os.fdatasync(fd)强制将文件描述符为fd的文件写入硬盘. 不强制更新metadata. 在unix中有效,请查看相关文档.。