標准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))