Lua 之os库
标准os库
os.rename(oldname, newname)
文件重命名;
os.remove(filename)
删除一个文件
os.execute(cmd)
os.execute可运行一条系统命令,类似于C语言的system函数。
os.execute("mkdir /tmp/cq")
os.exit(code)
中止当前程序的执行,code参数默认值为true。
os.getenv(variable)
返回环境变量的值,如果不存在,返回nil。
print(os.getenv('HOME')) -- /root print(os.getenv('ROOT')) -- nil
os.time(tb)
返回一个指定时间点的UNIX时间戳,如不带参数调用的话,就返回当前时间点的UNIX时间戳。
print(os.time()) print(os.time{year=2014, month=10, day=28, hour=13})
参数table的字段包括:
year |
年份 |
month |
01-12 |
day |
01-31 |
hour |
00-23 |
min |
00-59 |
sec |
00-59 |
isdst |
布尔值,true表示夏令时 |
其中,year、month、day 三个字段是必须的,其它字段默认取 12:00:00。
os.date(format, sec)
os.data 是os.time 的反函数,它将一个UNIX时间戳转换成可读的字符串形式,如果省略第2个参数,默认返回当前时间点的日期。。
为了生成一个日期table,可以使用格式字符串"*t",例如:
tb = os.date("*t") for k,v in pairs(tb) do print(k,v) end
输出:
hour 13 min 51 wday 3 day 28 month 10 year 2014 sec 58 yday 301 isdst false
而对于其它格式字符串,os.date 会将日期格式化为一个字符串,这个字符串是传入格式字符串的一个复制,但其中的某些特殊标记被替换成了时间和日期信息。所有的标记都以"%"开头,并伴随一个字符,例如:
print(os.date()) -- Tue Oct 28 13:57:39 2014 print(os.date('today is %A, in %B')) -- today is Tuesday, in October print(os.date('%x',os.time()-24*3600*7 )) -- 10/21/14
下面列出了所有的标记及其含义:
%a |
星期简写,如Wed |
%A |
星期全称,如Wednesday |
%b |
月份简写,如Sep |
%B |
月份全称,如September |
%c |
日期和时间,如09/16/14 13:43:08 |
%d |
一个月中的第几天,01-31 |
%H |
24小时制中的小时数,00-23 |
%I |
12小时制中的小时数,01-12 |
%j |
一年中的第几天,001-366 |
%M |
分钟数,00-59 |
%m |
月份数,01-12 |
%p |
上午(am)或下午(pm) |
%S |
秒数,00-59 |
%w |
一星期中的第几天,0-6 |
%x |
日期,如 09/16/14 |
%X |
时间,如13:47:20 |
%y |
两位数的年份,如14 |
%Y |
完整的年份,如2014 |
%% |
字符%
|
os.difftime(t2, t1)
返回从t1到t2的时间跨度值。
os.clock()
函数os.clock 返回当前CPU时间的秒数,一般可用于计算一段代码的执行时间
local x = os.clock() local s = 0 for i=1,10^7 do s = s + i end print(string.format("elapsed time: %.2f\n", os.clock() - x))