Lua操作系统库、流、文件库
1.Lua中所有的操作系统库函数
(1)os.clock() --功能:返回执行该程序cpu花费的时钟秒数
(2)os.time(...) --按参数的内容返回一个时间值,若不带参数则返回当前时间
(3)os.tmpname() --返回一个临时文件名
(4)os.getenv(varname) --返回当前进程的环境变量varname的值,若无变量则返回空
(5)os.remove(filename) 删除文件,或者一个空目录
(6)os.rename(oldname,newname) 更改一个文件或目录的名字
(7)os.difftime(t2,t1) 返回t1和t2相差的时间秒数
(8)os.date(format,time) 返回一个格式化日期,时间的字串或表
2.操作系统库函数的具体用法
(1)os.clock() 功能:返回执行该程序CPU花去的时钟秒数
1 local x = os.clock(); 2 print(os.clock()) 3 local s = 0; 4 for i = 1,10000000 do 5 s = s+i; 6 end 7 print (string.format("for循环用时:%.2f ",os.clock()-x))
(2)os.time(...) 功能:按参数的内容返回一个时间值(数字),若不带参数则返回当前时间
--其他元素:year,month,day,hour,min ,sec,isdst
--print(os.time()) --是秒的时间。1970年1月1日-现在的时间 --print(os.time({year = 1970,month = 1,day = 1,hour =8})) --如果hour=0-7这个数值,就会为空,这是有时区差导致的,北京时间的1970-1-1 08:00:00恰好是0时区时间的1970-1-1 00:00:00.所以返回的时间是0
(3)os.tmpname() 功能:返回一个临时文件名 ,不常用
(4)os.getenv(varname) 作用:返回当前进程的环境变量varname 的值,若变量没有定义时返回nil
print(os.getenv("USERNAME"))
(5)OS.remove(filename) 功能:删除文件或一个空目录,若函数的调用失败则返加nil加错误信息
(6)os.rename(oldname,newname) 作用:更改一个文件或目录名,若函数调用失败则返回nil 加错误信息
(7)os.exit(code) 作用:相当于C的exit函数,终止主程序,code为返回值
os.exit(1) 返回0的话没有终止,返回1的话终止
(8)os.difftime(t2,t1) 功能:返回t1到t2相差的秒数
t1 = os.time() for i = 0,100000000 do i = i+1 end t2 = os.time() print(os.difftime(t2,t1)
(9)os.date(format,time) 功能:返回一个格式化日期、时间的字串或表
--*t:将返一个带year(4位),month(1-12),day(1-31),hour(0-23),min(0-59),sec(0-61),wday(星期几,星期天为1),yday(年内天数)isdst(是否为日光节约时间true/false)的带键名的表
--若没有 *t 则返回一个按C的strftime 函数格式化的字符串
--若不带参数,则按当前系统的设置返回格式化字符串os.date()<=>os.date(%c)
print(os.date()) print(os.date("今天是 %B%d日%A")) t = os.date("*t",os.time()) for i ,v in pairs(t) do print(i,"-",v) end --print(os.date("%m/%d/%Y", 10300029200))
3.流与文件库
--io.read(...)和io.write(...) 作用:从标准输入流读取数据,输出到标准输出流
--io.read() 作用:就是读取数据,参数可变
--io.write() 作用:就是输出数据,参数可变
--io.read("*number") read函数从当前输入文件读取串,由它的参数控制读取的内容
--"*all" 读取整个文件 "*line" 读取下一行 "*number"从串中转换出一个数值
--num 读取num个字符串
--io.write()函数类似于print函数的用法
--io.input("账号.txt")和io.output("登陆.txt") 作用:io.input()设置参数内的文件为输入文件
--io.output()设置参数内的文件为输出文件
--四个函数联合的用法 io.input("账号.txt") io.read() --读取账号.txt中的内容 io.output("登陆.txt") io.write() --输出读取内容到登陆.txt
--io.flush() 输出所有缓冲区中的内容到默认输出文件
--io.close() 用于关闭被打开的io 文件
--io.open(filename,mode) 功能:按指定的模式打开一个文件,成功则返回文件的句柄,失败则返回nil+错误信息
-- “r”读模式(默认),“w”写模式,“a”添加模式,“r+”更新模式,所有之前的数据将被保存
-- “w+”更新模式,所有之前的数据将被清除 “a+”添加更新模式,所有之前的数据将被保存 ,只允许在文件尾进行添加
--“b” 某些系统支持二进制方式