Lua os库

os:
os.clock
os.date
os.difftime
os.execute
os.exit
os.getenv
os.remove
os.rename
os.setlocale
os.time
os.tmpname

os.clock:

返回一个程序使用CPU时间的一个近似值

#!/usr/local/bin/lua

local x = os.clock()
print(x)
local n = 0

for i=1, 10000000 do 
    n = n+1
end

print("cpu clock  is %.6f\n", os.clock())

os.date ([format [, time]])

功能:返回一个按format格式化日期、时间的字串或表
若设置time参数,则按time指定的时间格式化,否则按当前时间格式化
参数:
format:
“!”:按格林尼治时间进行格式化。
  “*t”:将返一个带year(4位),month(1-12), day (1–31), hour (0-23), min (0-59), sec (0-61), wday (星期几, 星期天为1), yday (年内天数), and isdst (是否为日光节约时间true/false)的带键名的表; 若没有”*t”则返回一个按C的strftime函数格式化的字符串
若不带参数,则按当前系统的设置返回格式化的字符串 os.date() <=> os.date(“%c”)

%a 一星期中天数的简写 (Wed)
%A 一星期中天数的全称 (Wednesday)
%b 月份的简写 (Sep)
%B 月份的全称 (September)
%c 日期和时间 (09/16/98 23:48:10)
%d 一个月中的第几天 (16)[0 ~ 31]
%H 24小时制中的小时数 (23)[00 ~ 23]
%I 12小时制中的小时数 (11)[01 ~ 12]
%j 一年中的第几天 (259)[01 ~ 366]
%M 分钟数 (48)[00 ~ 59]
%m 月份数 (09)[01 ~ 12]
%P “上午(am)” 或 “下午(pm)” (pm)
%S 秒数 (10)[00 ~ 59]
%w 一星期中的第几天 (3)[0 ~ 6 = 星期天 ~ 星期六]
%W  一年中的第几个星期        0 ~ 52
%x 日期 (09/16/98)
%X 时间 (23:48:10)
%y 两位数的年份 (90)[00 ~ 99]
%Y 完整的年份 (2009)
%% 字符串’%’

#!/usr/local/bin/lua

print(os.date())  --Tue May 22 19:23:18 2018

t = os.date("*t", os.time())
for k , v in pairs(t) do  --不能使用ipairs(t)
    print( k , v )
end


Tue May 22 19:23:18 2018
year    2018
month   5
sec 18
yday    142
min 23
hour    19
isdst   false
day 22
wday    3

os.difftime (t2, t1)

功能:返回t1到t2相差的秒数

t1 = os.time()

for i=1 , 1000000000 do 
    n = n+1
end

t2 = os.time()

print("t1 diff t2 ", os.difftime(t1, t2))

os.execute ([command])

功能:相当于C的system函数,返回系统状态码
print(os.execute(“/bin/ls”))
print(os.execute(“/usr/bin/top”))

os.exit ([code])

功能:相当于C的exit函数,终止主程序,code为返回值
code 为返回值 os.exit(1)

os.getenv (varname)

功能:返回当前进程的环境变量varname的值,若变量没有定义时返回nil
print(os.getenv(“HOME_PATH”))

os.remove (filename)

功能:删除文件或一个空目录,若函数调用失败则返回nil加错误信息

os.rename (oldname, newname)

功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息

os.setlocale (locale [, category])

功能:设置程序的当前设置,函数返回最新的值,失败则返回nil
原型:os.setlocale (locale [, category])
解释:设置程序的当前区域,函数返回设置以后该项最新的值,如果失败则返回nil。
参数:两个参数均可省略,但具体含义不同。
locale:表示一个指定当前设置区域的字串,有几种特殊形式如下
“”:一个空字串,当前设置被视为本地设置
“C”:当前设置被视为标准C设置
nil:返回category指示设置名的当前值
category:一个描述要更改的设置名,实际上就是制定一个分类的名字,分类如下
all:默认选项,包含下述所用分类。
collate :影响C语言函数strcoll和strxfrm
ctype:影响字符处理函数和多行字符处理函数
monetary:影响C语言函数localeconv返回的货币格式化信息
numeric:影响格式化输入输出字符中的小数点符号
time:影响C语言函数strftime

print(os.setlocale(nil))
print(os.setlocale("eng"))

os.time ([table])

功能:按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段:
year, month, day, hour, min, sec, isdst

print(os.time()); -->1526989157
print(os.time({year=1999, month=1, day=10, hour=11})); -->915937200

os.tmpname()

功能:返回一个临时文件名,io操作之后需要删掉。

local tmp = os.tmpname()  --创建tmpfile
print(tmp)
--tmp = "."..tmp
print(tmp)

local myfile = io.open(tmp, "w")  --打开tmpfile
print(myfile)
myfile:write("hello tmp file.")   --写入
myfile:close()                  --关闭tmpfile


local ff = io.open(tmp, "r")
print(ff)
local ret = ff:read("*all")     --读取
print(ret)
ff:close()

print(os.remove(tmp))       --删除tmpfile

猜你喜欢

转载自blog.csdn.net/u013420428/article/details/80410921