标准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')) -- /rootprint(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 13min 51wday 3day 28month 10year 2014sec 58yday 301isdst false
而对于其它格式字符串,os.date 会将日期格式化为一个字符串,这个字符串是传入格式字符串的一个复制,但其中的某些特殊标记被替换成了时间和日期信息。所有的标记都以"%"开头,并伴随一个字符,例如:
print(os.date()) -- Tue Oct 28 13:57:39 2014print(os.date('today is %A, in %B')) -- today is Tuesday, in Octoberprint(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 = 0for i=1,10^7 do s = s + i endprint(string.format("elapsed time: %.2f\n", os.clock() - x))