简要:Python中的文件处理,module os,以及标准文件。
1.文件处理
往往在实际运用中,我们会遇到需要处理类文件对象(”file_like”),比如:处理Web中的response对象,这个时候我们仍然可以像处理文件对象一样去处理。
(1)打开文件
open(file_name, access_mode=’r’, buffering=-1)
其中,access_mode有个U模式,比如:rU,Ua
当使用U模式时,读入文件时,所有行结束符都会被替换为’\n’
Ps:不同平台的行结束符可能不同,如:\n, \r, 或者 \r\n
(2)文件迭代
在之前,迭代的读取文件内容,往往是通过file.readlines()所完成的:
for eachline in file.readlines:
pass
但是可以通过迭代器来完成这样的操作:
for eachline in file:
pass
(3)杂项
file.seek(offset[, whence])
移动到文件的某个位置,offset为偏移量,whence的选项为:0,1,2,其默认值为1
0代表文件开头,1代表当前文件位置,2代表文件末尾file.flush()
刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件file.truncate([size])
截取文件,截取的字节通过size指定,默认为当前文件位置
2.module os
有助于跨平台开发的 os 模块属性:
os.linesep: 用于在文件中分隔行的字符串
os.sep: 用来分隔文件路径名的字符串
os.pathsep: 用于分隔文件路径的字符串
os.curdir: 当前工作目录的字符串名称
os.pardir : (当前工作目录的)父目录字符串名称
os.name: 当前平台名称(‘nt’ 表示Windows,’posix’表示Linux)
os.environ: 系统环境变量
不管你使用的是什么平台, 只要你导入了 os 模块, 这些变量自动会被设置为正确的值
常用方法:
os.getcwd():显示当前python脚本工作路径
os.path.split(path):将path分割成路径名和文件名
Ps:注意,该方法无法判断path中是否存在文件名,若path不含有文件名,该方法依然会将最后一级目录作为文件名分离
os.path.join(path,name):连接目录与文件名或目录
os.listdir(‘dirname’):返回指定目录下的所有文件和目录名
os.rename(“oldname”,”newname”):重命名文件
os.path.isfile(path):如果path是文件,则返回True
os.path.isdir(path):如果path是目录,则返回True
3.标准文件
分别为:stdin,stdout,stderr
Python 中可以通过 sys 模块来访问这些文件的句柄. 导入 sys 模块以后, 就可以使用 sys.stdin , sys.stdout 和 sys.stderr 访问. print 语句通常是输出到 sys.stdout ; 而内建 raw_input() 则通常从 sys.stdin 接受输入.
Ps:sys.* 是文件, 所以必须处理好换行符. 而 print 语句会自动在要输出的字符串后加上换行符
资料来源:
http://www.cnblogs.com/MnCu8261/p/5483657.html
Python核心编程第二版中文