篇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()