首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

Lua获取文件长度和判断文件是否存在函数

2024-09-26 来源:华佗小知识

篇1:Lua获取文件长度和判断文件是否存在函数

获得文件长度

代码如下:

function length_of_file(filename)

local fh = assert(io.open(filename, “rb”))

local len = assert(fh:seek(“end”))

fh:close

return len

end

判断文件是否存在

代码如下:

function file_exists(path)

local file = io.open(path, “rb”)

if file then file:close() end

return file ~= nil

end

篇2:用C函数获取文件的长度

#include

int GetFileSize(const char * pszFilePath)

{

FILE *fp = fopen(pszFilePath, “rb”);

VERIFY(fp != NULL);

const int nFile = _fileno(fp);

const int nFileLength = _filelength(nFile);

fclose(fp)

return nFileLength;

}

一、使用io.open

Open 一下就可以了,

代码如下:

file,err=io.open(“XXXX”)

如果文件正常打开 file为文件句柄,err 为 nil 。否则 file 为 nil ,err为错误信息 “drr: No such file or directory”,

只需要 open 一下。然后看看返回值。

代码如下:

somefile=“xxxj.pdf”

local F,err=io.open(somefile,“r+”);

print(err)

如果文件不存在 err 会包含相关信息。

二、自定义函数

代码如下:

function file_exists(path)

local file = io.open(path, “rb”)

if file then file:close end

return file ~= nil

end

篇4:Python判断文件和文件夹是否存在的方法

一、python判断文件和文件夹是否存在、创建文件夹

代码如下:

>>>import os

>>>os.path.exists(‘d:/assist‘)

True

>>>os.path.exists(‘d:/assist/getTeacherList.py‘)

True

>>>os.path.isfile(‘d:/assist‘)

False

>>>os.path.isfile(‘d:/assist/getTeacherList.py‘)

True

>>>os.makedirs(‘d:/assist/set‘)

>>>os.path.exists(‘d:/assist/set‘)

True

二、python判断文件是否存在

代码如下:

import os

filename = r‘/home/tim/workspace/test.txt‘

if os.path.exists(filename):

message = ‘OK, the “%s” file exists.‘

else:

message = “Sorry, I cannot find the ”%s“ file.”

print message % filename

三、如何用Python判断文件是否存在

使用os.path.exists()方法可以直接判断文件是否存在,

代码如下:

代码如下:

>>>import os

>>>os.path.exists(r‘C:1.TXT‘)

False

>>>

如果存在返回值为True,如果不存在则返回False

四、python判断文件夹是否存在

代码如下:

$ python

Python 2.7.3 (default, Jan 2 2013, 16:53:07)

[GCC 4.7.2] on linux2

Type “help”, “copyright”, “credits” or “license” for more information.

>>>import os

>>>

>>>

>>>tobecheckdir = r‘/home/tim/workspace‘

>>>os.path.isdir(tobecheckdir)

True

>>>

五、python检查文件是否存在,以及路径是否为文件

在写文件之前通常需要检查文件路径是否可写:

代码如下:

from os import path, access, R_OK # W_OK for write permission.

PATH=‘./file.txt‘

if path.exists(PATH) and path.isfile(PATH) and access(PATH, R_OK):

print “File exists and is readable”

else:

print “Either file is missing or is not readable”

你也可以通过下面的方式实现:

代码如下:

def file_exists(filename):

try:

with open(filename) as f:

return True

except IOError:

return False

六、python判断文件和文件夹是否存在

代码如下:

import os

os.path.isfile(‘test.txt‘) #如果不存在就返回False

os.path.exists(directory)

七、os.path.lexist

还有os.path.lexists(path)

对broken的link file也返回True.

八、python FTP判断文件夹是否存在

python怎样判断文件夹是否存在?

使用ftp库就可以了,下面是Python核心编程上的例子:

代码如下:

>>>from ftplib import FTP

>>>f = FTP(‘ftp.python.org‘)

>>>f.login(‘anonymous‘, ‘guido@python.org‘)

‘230 Guest login ok, access restrictions apply.‘

>>>f.dir()

dir结果中无此文件,就是不存在,

或者如下:

代码如下:

try:

f.retrbinary(‘RETR %s‘ % FILE,open(FILE, ‘wb‘).write)

except ftplib.error_perm:

print ‘ERROR: cannot read file “%s”‘ % FILE 40 os.unlink(FILE)

不能读此文件,也视为不存在。

篇5:Lua文件读写详解

这篇文章主要介绍了Lua文件读写详解,本文讲解了文件读写的简单模型和完整模型,并给出了一个操作示例,需要的朋友可以参考下

lua里的文件读写模型来自C语言,分为完整模型(和C一样)、简单模型,

1、简单模型

io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为把柄,有了把柄就可以找到文件),返回文件句柄。

io.output([file]) 设置默认的输出文件,参数意义同上。

io.close([file]) 关闭文件,不带参数关闭默认的文件

io.read(formats) 读入默认文件,formats取值为“*a”(读入全部)、“*n”(按数字读入)、“*l”(按行读入,默认方式)、n(即数字,读取n个字符)。

io.lines([fn]) fn文件名,若无文件,取默认文件,返回一个迭代器,可以用在for循环里。

io.write(value)向默认文件写入内容。

io.flush() 把文件缓存里的操作立即作用到默认输出文件。

例子在最后。

2、完整模型

简单模型里只能处理文本类型的文件,在完整模型里可以处理二进制文件。

处理文件的一般流程为:打开文件,获取文件的句柄;以文件句柄操作文件;关闭文件。

可以看到完整模型比简单模型复杂点,但优点是功能更强大。

io.open (fn [, m]) 打开文件,返回文件句柄,fn文件名,m模式有:

r 以只读方式打开文件,该文件必须存在。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

r+ 以可读写方式打开文件,该文件必须存在。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a+ 与a类似,但此文件可读可写

b 二进制模式,如果文件是二进制文件,可以加上b

+ 号表示对文件既可以读也可以写

file :close ()

file :read ( formats )

file :lines ()

file :write ( values )

file :seek ([p] [, of]) 设置文件读写的偏移,p文件偏移起始位置(取值有“set”,文件头,此为默认值,“cur”当前位置、“end”文件尾),of偏移量(默认值0,正的表示向前,负的表示向后),返回在文件里新的当前位置,

file :flush ()

3、示例

代码如下:

------------------简单模型-----------------

--读

local file1=io.input(“1.txt”) 

local str=io.read(“*a”)

print(str)

--写

local file2=io.output(“2.txt”)

io.write(str)

io.flush()

io.close()

--利用这几个函数可以做一个文件复制的函数

function copy(fileA,fileB)

local file1=io.input(fileA)

if not file1 then print(fileA..“不存在”) return end

local str=io.read(“*a”)

local file2=io.output(fileB)

io.write(str)

io.flush()

io.close()

end

for line in io.lines(“1.txt”) do

print(line)

end

------------------完整模型-----------------

local f=io.open(“3.txt”,“a+”)

f:write(“Happy New Year!”)

f:flush()

f:seek(“end”,-1) --定位到文件末尾前一个字节

local str=f:read(1) --读取一个字符

print(str) --输出“!”

f:close()

显示全文