首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在lua中创建带有当前日期和时间的文件名?

如何在lua中创建带有当前日期和时间的文件名?
EN

Stack Overflow用户
提问于 2011-10-06 17:49:32
回答 1查看 2.1K关注 0票数 1

我想写一个表到一个文件中,这个文件以它创建的日期和时间命名。我可以打开一个带有硬编码名称的文件,将表写入其中,如下所示:

代码语言:javascript
复制
FILENAME_EVENTS="Events.txt"            -- filename in string
local fp=io.open(FILENAME_EVENTS, a)        -- open a new file with the file name
io.output(FILENAME_EVENTS)      -- redirect the io output to the file
-- write the table into the file
for i, e in ipairs(eventlist) do io.write(e.title, e.category, e.ds, e.de, e.td) end

但是当我尝试的时候:

代码语言:javascript
复制
FILENAME_EVENTS=os.date().."\.txt"          -- filename in string with date
local fp=io.open(FILENAME_EVENTS, a)        -- open a new file with the file name
io.output(FILENAME_EVENTS)      -- redirect the io output to the file
-- write the table into the file
for i, e in ipairs(eventlist) do io.write(e.title, e.category, e.ds, e.de, e.td) end

我收到错误'output‘(10/06/11 17:45:01.txt:无效参数)的错误参数#1堆栈回溯: C: in function 'output’

为什么这个"10/06/11 17:45:01.txt“是一个无效参数?由于它包含空格或'/'?或者其他原因?

顺便说一句,平台是win7 Pro + Lua 5.1.4 for win

EN

回答 1

Stack Overflow用户

发布于 2011-10-06 18:18:31

显然,/:都是那个博克。第一个可能是因为它被认为是目录分隔符。这可以演示如下:

代码语言:javascript
复制
fn=os.date()..'.txt'
print(io.open(fn,'w')) -- returns invalid argument

fn=os.date():gsub(':','_')..'.txt'
print(io.open(fn,'w')) -- returns nil, no such file or directory

fn=os.date():gsub('[:/]','_')..'.txt'
print(io.open(fn,'w')) -- returns file(0x...), nil <-- Works

顺便说一句,除了使用奇怪的gsub和连接技巧之外,您还可以考虑使用类似于

代码语言:javascript
复制
fn=os.date('%d_%m_%y %H_%M.txt')
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7672673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档