a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 57|回复: 0

[综合辅导] Linux认证之Python文件操作的函数示例

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
Linux认证之Python文件操作的函数示例1 A3 S9 {4 B+ u8 N: V* k  F# _
Python常见文件操作的函数示例8 }, r) l: Y; _# L& A$ f
# -*-coding:utf8 -*-+ J& u" c; U6 h& y+ g
‘’‘’‘ Python常见文件操作示例
( X9 W$ }! A& Z* R7 A9 n- k: zos.path 模块中的路径名访问函数分隔basename() 去掉目录路径, 返回文件名dirname() 去掉文件名, 返回目录路径join() 将分离的各部分组合成一个路径名split() 返回 (dirname(), basename()) 元组splitdrive() 返回 (drivename, pathname) 元组splitext() 返回 (filename, extension) 元组
, r! [% z4 d! f3 r4 b" K信息getatime() 返回最近访问时间getctime() 返回文件创建时间getmtime() 返回最近文件修改时间getsize() 返回文件大小(以字节为单位)% u6 G  C. P* m1 }( r% @
查询exists() 指定路径(文件或目录)是否存在isabs() 指定路径是否为绝对路径isdir() 指定路径是否存在且为一个目录isfile() 指定路径是否存在且为一个文件islink() 指定路径是否存在且为一个符号链接ismount() 指定路径是否存在且为一个挂载点samefile() 两个路径名是否指向同个文件
2 r2 p5 ^, u0 R! S; M" D2 Nos.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返回false os.path.exists(name):判断是否存在文件或目录name os.path.getsize(name):获得文件大小,如果name是目录返回0L os.path.abspath(name):获得绝对路径os.path.normpath(path):规范path字符串形式os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)
: A& U" v9 K4 F, mos.path.splitext():分离文件名与扩展名os.path.join(path,name):连接目录与文件名或目录os.path.basename(path):返回文件名os.path.dirname(path):返回文件路径' B) k1 W. P8 N5 i: Y& j9 T
os模块中的文件操作:os 模块属性linesep 用于在文件中分隔行的字符串sep 用来分隔文件路径名的字符串pathsep 用于分隔文件路径的字符串curdir 当前工作目录的字符串名称pardir (当前工作目录的)父目录字符串名称6 O0 U8 a( T3 s% r: P$ p3 L; }, m
1.重命名:os.rename(old, new)+ x6 g: t. P+ D, c) \! L( @! K% S
2.删除:os.remove(file)7 l8 M- m# O( x& N1 F3 Y- Q2 A2 X
3.列出目录下的文件:os.listdir(path)) ?& b$ r9 d% z
4.获取当前工作目录:os.getcwd()8 c" h# P" `$ ~4 d7 Z1 c
5.改变工作目录:os.chdir(newdir)
+ p5 a( R! b" t7 E6.创建多级目录:os.makedirs(r“c:\python\test”)1 K( [- x8 B" x& |1 H) m( m
7.创建单个目录:os.mkdir(“test”)9 R, ~, a) w' |5 n8 |
8.删除多个目录:os.removedirs(r“c:\python”) #删除所给路径最后一个目录下所有空目录。
/ y( g  ~8 H2 u9.删除单个目录:os.rmdir(“test”)
  M3 f+ K9 M- ]2 {10.获取文件属性:os.stat(file)( X1 |% R: p& x' s  E' D
11.修改文件权限与时间戳:os.chmod(file)7 M4 o9 |4 {& X5 V
12.执行操作系统命令:os.system(“dir”)
7 `; t0 Z; z' p13.启动新进程:os.exec(), os.execvp()/ V8 `/ v) {$ F2 R
14.在后台执行程序:osspawnv()2 w. A: ~1 H0 ]8 [3 g9 h& L
15.终止当前进程:os.exit(), os._exit()8 E) H) w: U! B5 i: q9 `
16.分离文件名:os.path.split(r“c:\python\hello.py”) ——》 (“c:\\python”, “hello.py”)! R8 J5 p6 q& ^; \$ }- Y; K& [
17.分离扩展名:os.path.splitext(r“c:\python\hello.py”) ——》 (“c:\\python\\hello”, “.py”)$ K! C3 H1 E3 Z
18.获取路径名:os.path.dirname(r“c:\python\hello.py”) ——》 “c:\\python”8 T. D: `) g1 e" k
19.获取文件名:os.path.basename(r“r:\python\hello.py”) ——》 “hello.py”8 s& P8 I. D, M0 E6 j- ?' L7 D9 _$ c* d
20.判断文件是否存在:os.path.exists(r“c:\python\hello.py”) ——》 True: `9 i# i3 f% u; Z' p$ P2 M
21.判断是否是绝对路径:os.path.isabs(r“。\python\”) ——》 False
" V0 f) Z& K( z) i8 I' g22.判断是否是目录:os.path.isdir(r“c:\python”) ——》 True
  I: ?+ M( N, i" d; |% s23.判断是否是文件:os.path.isfile(r“c:\python\hello.py”) ——》 True" y4 F. i/ o$ J5 b
) C  n; n& y$ A% D2 j/ i) L$ [

, s4 T8 T; E5 e: }1 k24.判断是否是链接文件:os.path.islink(r“c:\python\hello.py”) ——》 False; b2 x9 n8 T  x4 X4 u6 Z3 r$ \5 a* ?
25.获取文件大小:os.path.getsize(filename)( Q( x4 b4 b% N9 }1 s  B  \
26.*******:os.ismount(“c:\\”) ——》 True1 e5 s2 e9 \3 W% X; G  ?
27.搜索目录下的所有文件:os.path.walk(): T* E/ |4 E  N& _* p! O; A/ q, c, W
shutil模块对文件的操作:1.复制单个文件:shultil.copy(oldfile, newfle)9 E" C* w) K0 d% m  [6 G8 V
2.复制整个目录树:shultil.copytree(r“。\setup”, r“。\backup”)2 |" t5 S7 w% }
3.删除整个目录树:shultil.rmtree(r“。\backup”). ~! K6 Z2 F1 j% s0 Z3 [
临时文件的操作:1.创建一个唯一的临时文件:tempfile.mktemp() ——》 filename
# W  F0 P2 x, A# D3 v+ w+ q2.打开临时文件:tempfile.TemporaryFile()2 |; u/ K. h! r2 o
内存文件(StringIO和cStringIO)操作[4.StringIO] #cStringIO是StringIO模块的快速实现模块( Q5 p9 Q9 L/ O9 h9 A- w, p
1.创建内存文件并写入初始数据:f = StringIO.StringIO(“Hello world!”)
& q( v* q; I, U! U2.读入内存文件数据:print f.read() #或print f.getvalue() ——》 Hello world!
/ s; o; K; _8 J6 i5 E* j3.想内存文件写入数据:f.write(“Good day!”)6 ~# b2 Z& H5 f) Z
4.关闭内存文件:f.close(); C/ F# A& x! Z
’‘’ import os import os.path import unittest import time #import pygame' f4 m' g' i$ G8 w/ V; p3 X
class PyFileCommonOperatorTest(unittest.TestCase):def __init__(self):“”“constructor”“”
* B  Q. O/ y: c- n; N$ u3 H* Tdef test01(self):print os.linesep print os.sep print os.pathsep print os.curdir print os.pardir print os.getcwd()
% J2 l- }5 M  i1 d  e) }print ‘unittest here’
/ P: ]& C' {) w3 F5 bif __name__ == “__main__”:t = PyFileCommonOperatorTest()
4 R) Z  \- y0 |( h8 Jt.test01()$ J& p3 V6 C* L) F- P9 G
view plainprint?- D' ^) w! L: T7 U
view plainprint?3 L% L; ^) O' E5 q  |3 ]: L: V
#读文件的写法:#读文本文件:input = open(‘data’, ‘r’)#第二个参数是默认的,可以不加#读二进制文件:input = open(‘data’, ‘rb’)- L+ a" P5 r2 ]9 w/ ^
#读取所有文件内容:open(‘xxoo.txt’)。read()+ z$ Q- {- j+ s9 d
#读取固定字节open(‘abinfile’, ‘rb’)。read(100)
/ j4 M) ?- I1 ]+ r#读每行file_object.readlines()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-17 08:35 , Processed in 0.206997 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表