python写文件:python 文件和目录操作

1)os.path
1.1 os.path.isabs(path) 是否是绝对路径
1.2 os.path.isfile(path)
1.3 os.path.isdir(path)
1.4 os.path.islink(path) 是否是链接;但如果系统不支持链接返回False
1.5 os.path.ismount(path) 是否为驱动器;但是很不幸是在python 3.0中这是个不能运行
如下:

# Is a path a mount po? Either a root (with or without drive letter)
# or an UNC path with at most a / or \ after the mount po.
def ismount(path):
"""Test whether a path is a mount po (d as root of drive)"""
unc, rest = splitunc(path)
seps = _get_bothseps(p)
unc:
rest in p[:0] + seps
p = splitdrive(path)[1]
len(p) 1 and p[0] in seps


的处是显而易见不知道这个为什么这么写在windows平台可以如下完成该功能
def ismount(path):
p = splitdrive(path)[1]
len(p) > 0:
(False)
:
(True)

其他平台没有对应机器不知道具体情形
1.6 os.path.abspath(path) 返回绝对路径
1.7 os.path.dirname(path)
1.8 os.path.exists(path)
1.9 os.path.lexists(path) 和exists
1.10os.path.getsize(path)
1.11os.path.getctime(path) 返回浮点数系统时间在类Unix系统上是文件最近更改时间
在Windows上是文件或目录创建时间
1.12os.path.getmtime(path) 文件或目录最后更改时间
1.13os.path.getatime(path) 文件或目录最后存取时间
1.14os.path.samefile(path1,path2) 如果2个路径指向同样文件或目录返回True(Windows上不可用)
1.15os.path.split(path) 分割路径如果path是目录返回[parentName, dirName];
如果path是文件返回[dirName, fileName]
1.16os.path.splitext(path) 分割路径如果path是目录返回[parentName, ''];
如果path是文件返回[dirName+fileName, 文件后缀]

2)fileinput
简单使用
import file
input for line in fileinput.input:
process(line)

2.1 fileinput.input([files[, inplace[, backup[,mode[,openhook]]]]])
创建个fileinput例子如果files为空则指向控制台获得输入;如果file为'-'同样转向控制台获得输入
默认情况文件以text mode打开如果需要其他格式则需要指定
2.2 fileinput.filename #只有当读入第行的后该值才被赋值
2.3 fileinput.fileno
2.4 fileinput.lineno
2.5 fileinput.filelineno
2.6 fileinput.isfirstline
2.7 fileinput.isstdin
2.8 fileinput.nextfile
2.9 fileinput.close

3)glob
可以使用简单思路方法匹配某个目录下所有子目录或文件使用方法也很简单
3.1 glob.glob(regression) 返回个列表
3.2 glob.iglob(regression) 返回个遍历器
这个模块简单好用强力推荐

4)linecache
看名字就知道了属于缓存Cache类
4.1 linecache.getline(filename,lineno[, module_globals]) #获得filename第lineno行
4.2 linecache.clearcache
4.3 linecache.checkcache([filename]) #检查更新

5)shutil 重点推荐好东西支持文件集合复制和删除操作
5.1 shutil.copyfileobj(fsrc, fdst[, length])
5.2 shutil.copyfile(src, dst) #上面2个都是文件复制
5.3 shutil.copymode(src, dst) #除了复制内容还会复制其他些信息例如作者
5.4 shutil.copystat(src, dst) #除了复制内容还会复制存取时间信息
5.5 shutil.copy(src, dst) #复制文件到dst当dst为目录时复制到子目录
5.6 shutil.copy2(src, dst) #相当于先copy再copystat
5.7 shutil.copytree(src, dst[, symlinks=False[, ingore=None]]) #复制文件夹树注意,dst文件夹必须是不存在
5.8 shutil.rmtree(path[, ignore_erros[, _disibledevent=>复制代码 代码如下:

def copytree(src, dst, symlinks=False):
names = os.listdir(src)
os.makedirs(dst)
errors =
for name in names:
srcname = os.path.join(src, name)
dstname = os.path.join(dst, name)
try:
symlinks and os.path.islink(srcname):
linkto = os.readlink(srcname)
os.symlink(linkto, dstname)
el os.path.isdir(srcname):
copytree(srcname, dstname, symlinks)
:
copy2(srcname, dstname)
# XXX What about devices, s etc.?
except (IOError, os.error) as why:
errors.append((srcname, dstname, str(why)))
# catch the Error from the recursive copytree so that we can
# continue with other files
except Error as err:
errors.extend(err.args[0])
try:
copystat(src, dst)
except WindowsError:
# can't copy file access times on Windows
pass
except OSError as why:
errors.extend((src, dst, str(why)))
errors:
raise Error(errors)

Tags:  python文件 python读写文件 python二进制文件 python写文件

延伸阅读

最新评论

发表评论