python/bat常见知识点

151 阅读2分钟

Python

多线程/多进程相关

多进程操作,两种方式 docs.python.org/zh-cn/3/lib…

1

from multiprocessing import Pool
	with Pool(N) as p:
		p.map(func, [X1,X2...XN])

2

from multiprocessing import Process
    p = Process(target=func, args=('bob',))
    p.start()
    p.join()

多线程操作 docs.python.org/zh-cn/3/lib…

import threading
subthread = threading.Thread(target=func, name='subthread',args=[SN], kwargs={})

时间相关

time.localtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。以下实例展示了 localtime()函数的使用方法:

>>> import time
>>> print ("localtime(): ", time.localtime(1455508609.34375))
localtime():  time.struct_time(tm_year=2016, tm_mon=2, tm_mday=15, tm_hour=11, tm_min=56, tm_sec=49, tm_wday=0, tm_yday=46, tm_isdst=0)

time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。以下实例展示了 strftime()函数的使用方法:

>>> import time
>>> print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
2016-04-07 11:18:05

time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') 根据fmt的格式把一个时间字符串解析为时间元组。以下实例展示了 strptime()函数的使用方法:

>>> import time
>>> struct_time = time.strptime("30 Nov 00", "%d %b %y")
>>> print ("返回元组: ", struct_time)
返回元组:  time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

time.mktime(tupletime) 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。以下实例展示了 mktime() 函数的使用方法:

#!/usr/bin/python3
import time

t = (2016, 2, 17, 17, 3, 38, 1, 48, 0)
secs = time.mktime( t )
print ("time.mktime(t) : %f" %  secs)
print ("asctime(localtime(secs)): %s" % time.asctime(time.localtime(secs)))

以上实例输出结果为:

time.mktime(t) : 1455699818.000000
asctime(localtime(secs)): Wed Feb 17 17:03:38 2016

获取当前字符串时间

str = time.strftime('%Y%m%d%H%M%S', time.localtime())  # 将 结构体时间 格式化为 字符串时间

目录相关

os.path.exists  # 判断目录是否存在 
os.mkdir  # 创建目录
os.path.join  # 拼接目录
os.path.basename('/root/runoob.txt')  # 返回文件名
os.path.dirname('/root/runoob.txt')  # 返回目录路径
os.path.split('/root/runoob.txt')  # 分割文件名与路径

常见三方库

bat

基本

rem 或 ::  # 注释
echo param[0] = %0    # 传递参数,%0为脚本本身,%1为第一个参数
timeout /T 3 /NOBREAK  # 延迟3秒,且不被键盘输入中断
xcopy Source [Destination]  # 复制文件和目录,包括子目录

@echo off
set num=
set /p num=How many times do you want to run autotest?  # 设置测试次数
if not defined num set num=1
for/f %%i in (a.txt) do echo %%i # 这个会显示a.txt里面的内容,因为/f的作用,会读出a.txt中的内容。