python3常用标准库

趁着有时间,把一些我用过的常用标准库进行整理和复习。

  1. 文档,了解更多)

    import shutil
    
    
    shutil.copymode("./t1/a.txt", "./t1/b.txt")
  2. shutil.copystat(src, dst)
    从 src 拷贝权限位、最近访问时间、最近修改时间以及旗标到 dst.

  3. shutil.copy(src, dst)
    拷贝文件和权限

  4. shutil.copy2(src, dst)
    拷贝文件和状态信息

  5. shutil.copytree(src, dst)
    递归拷贝,参数很多,没有详细列出

    import shutil
    
    shutil.copytree('folder1', 'folder2',
    				ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))
    # 目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除

文档给出的元字符

字符 描述 列子
\ 匹配
w 匹配字母、数字、下划线
W 匹配非字母数字下划线
s 匹配空白字符
S 匹配非空白字符
d 匹配数字
D 匹配非数字
n 匹配换行符
t 匹配制表符
^ 匹配字符串的开头
$ 匹配字符串的结尾
. 匹配除换行符外的所有字符,当re.DOTALL标记被指定时,可以匹配换行符
[] 匹配括号中的每一个字符,如[abc]表示abc
[^] 匹配不在括号中的字符,如[^abc]表示不是ab
* 对它前面的正则式匹配0到任意次重复,如w*表示0到任意个数字
+ 对它前面的正则式匹配1到任意次重复
? 对它前面的正则式匹配0到1次重复
{n} 对其之前的正则式指定匹配 m 个重复;少于 m 的话就会导致匹配失败,如w{6}表示6个数字
{n,m} 对正则式进行 n 到 m 次匹配,在 n 和 m 之间取尽量多。
a|b 匹配a或b
() 组合,匹配括号内的表达式

更多可以看这篇文章 linux shell 正则表达式(BREs,EREs,PREs)差异比较
关于(?…)个扩展标记法,可以看官方文档。

此文

点击这里

关于使用日志的流程,大约有以下步骤:

  1. 调用logging.basicConfig()设置logging,确定日记级别、是否输入到文件、信息格式等参数
  2. 根据需求,调用loggingdebuginfowarningerrorcritical方法

注意
由于logging.basicConfig()只需要定义一次,所以debug等方法应该在其被设置后调用

官方文档

获取返回信息

  1. 使用subprocess.PIPE接收
  2. popen_obj.stdout.read().decode("xx") 的方式

当然也可以在stdout中传入文件对象,直接写入文件中

使用例子

import subprocess


# 执行没有参数的
subprocess.Popen(["dir"], shell=True, stdout=open("dir_res.txt", "w"))


# 有参数
# get_sum.py为argparse模块最后的例子
command = "python get_sum.py 3.47 2.48 -a -f 2"

res2 = subprocess.Popen(command.split(" "), shell=True, stdout=subprocess.PIPE)
print(res2.stdout.read().decode("gbk"))  # 3.47 + 2.48 = 5.95


# stdout作为stdin

res3 = subprocess.Popen(["echo", "www.baidu.com"],
                        shell=True, stdout=subprocess.PIPE)

res4 = subprocess.Popen(["nslookup"], shell=True,
                        stdin=res3.stdout, stdout=subprocess.PIPE)

print(res4.stdout.read().decode("gbk"))
"""
默认服务器:  UnKnown
Address:  192.168.0.1

> 服务器:  UnKnown
Address:  192.168.0.1

名称:    www.baidu.com
Address:  182.61.200.7

>
"""

我的github
我的博客
我的笔记


  1. num1 > num2时为[num2, num1]

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/lczmx/p/14323131.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!