-
lambda
:匿名函数,语法:lambda [parm_list]:表达式
res = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(list(res)) # [2,4,6,8]
-
filter
: 过滤函数,语法:filter(func, iterable)
, 其中func
是过滤规则,iterable
是要过滤的可迭代对象,将func返回 True 的元素放到新列表中
print(list(filter([1,2,3,4,5])))
-
map
: 会根据提供的函数对指定序列做映射。语法:map(function, iterable, ...)
可以有多个可迭代序列,与filter不同的是,map可以有多个iterable,返回包含每次 function 函数返回值的新列表
res = map(lambda x, y: x * y, [1, 2, 3, 4, 5], [2, 3, 4, 5, 6])
print(list(res)) # [2, 6, 12, 20, 30]
-
round
: 返回浮点数x的四舍五入值。语法:round( x [, n] )
,其中x
是数,n表示小数点后几位,默认为0
print(round(11.51234)) # 12
-
os
: 文件/目录方法
os模块提供了非常丰富的方法来处理文件和目录常用的方法如下所示:
序号 | 方法 | 描述 |
---|---|---|
1 | os.access(path, mode) | 检验权限模式 |
2 | os.chdir(path) | 改变当前工作目录 |
3 | os.chflags(path, flags) | 设置路径的标记为数字标记 |
4 | os.chmod(path,mode) | 更改权限 |
5 | os.chown(path,uid,gid) | 更改文件所有者 |
6 | os.chroot(path) | 更改当前进程的根目录 |
7 | os.close(fd) | 关闭文件描述符fd |
8 | os.closerange(fd_low,fd_hight) | 关闭所有文件描述符,从fd_low(包含)到fd_high(不包含),错误会忽略 |
9 | os.dup(fd) | 复制文件描述符 |
10 | os.getcwd() | 返回当前工作目录 |
11 | os.listdir(path) | 返回path指定的文件夹包含的文件或文件夹得名字的列表。 |
11 | os.work(path) | 遍历目录树,返回当前路径、目录列表、当前目录下所有文件 |
12 | os.makedirs(path[,mode]) | 递归文件夹创建函数。像mkdir(),但创建的所有intermediate-level文件夹需要包含子文件夹。 |
- python执行系统命令
-
os.system(cmd)
在子终端运行系统命令,可以获取命令执行后的返回信息以及执行返回的状态,但并不会在当前代码中有返回数据>>>import os >>>os.system('ls -l python*') lrwxrwxrwx 1 root root 10 Aug 18 2022 python3 -> python3.10 -rwxr-xr-x 1 root root 5913032 Jun 11 2023 python3.10 0 >>>
-
os.popen(cmd)
不仅执行命令而且返回执行后的信息对象(常用于需要执行命令后的返回信息),是通过一个管道文件将结果返回>>> res = os.popen('ls -l python*') >>> print(res.read()) lrwxrwxrwx 1 root root 10 Aug 18 2022 python3 -> python3.10 -rwxr-xr-x 1 root root 5913032 Jun 11 2023 python3.10
-
commands
模块 (python3中已移除,使用subprocess代替)- getoutput 获取执行命令后的返回信息
- getstatus 获取执行命令的状态值(执行命令成功返回数值0,否则返回非0)
- getstatusoutput 获取执行命令的状态值以及返回信息
import commands status, output = commands.getstatusoutput('ls -l')
-
subprocess
模块-
subprocess.Popen
: 在后台新建一个进程执行命令
语法:subprocess.Popen(args, shell=False,cwd=None,encoding=None)
from subprocess import Popen, PIPE proc = Popen('ls -l', shell=True [, stdin=PIPE, stdout=PIPE,encoding='utf-8']) # shell=True表示使用shell执行命令,参数为字符串时使用shell=True proc.pid # pid proc.terminate() # 杀死进程相当于proc.kill() proc.poll() # 查看后台进程是否结束,None为未结束,0为正常结束,其他有-2,-9,-15,表示被终止 proc.returncode # proc.poll()的返回代码(0,-2,...) stdout=PIPE # 设置输出方式 encoding='utf-8' # 设置输出编码格式 proc.communicate() # 配合stdout计encoding使用,输出为(stdout, stderr) proc.args # 输入执行命令 proc.wait() # 阻塞直到进程结束
-
-
时间转换(time)
a. 获取当前时间戳import time time_now = time.time() # 1646188764.5619113
b. 格式化时间
import time now = time.strftime("%Y-%m-%d %H:%M:%S") # '2022-03-02 10:39:43' format_time = time.strftime("%Y-%m-%d %H:%M:%S", 时间元组) format_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime([时间戳]))
c. 格式化时间转时间戳
import time str_time = '2022-02-01 16:15:12' time_stamp = time.mktime(time.strptime(str_time, "%Y-%m-%d %H:%M:%S")) # 1643703312.0
d. 时间戳转时间元组
import time time_tuple = time.localtime(1646188764.5619113) # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=10, tm_min=39, tm_sec=24, tm_wday=2, tm_yday=61, tm_isdst=0)
e. 格式化时间转时间元组
import time time_tuple = time.strptime('2022-03-02 10:39:43', '%Y-%m-%d %H:%M:%S') # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=10, tm_min=39, tm_sec=43, tm_wday=2, tm_yday=61, tm_isdst=-1)
d. 时间元组转时间戳
import time time_tuple = time.strptime('2022-03-02 10:39:43', '%Y-%m-%d %H:%M:%S') time_stamp = time.mktime(time_tuple) print(time_stamp) #1646188783.0
f. 获取今天日期
import time, datetime today1 = time.strftime("%Y-%m-%d") # '2022-03-02' today2 = datetime.date.today() # datetime.date(2022, 3, 2) today2_tuple = datetime.date.today().timetuple() # time.struct_time(tm_year=2022, tm_mon=3, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=61, tm_isdst=-1)