文件的读取
open函数
f=open('/tmp/passwd')
print f ##f是一个文件对象,打印出的时f的地址以及模式
print f.name ##打印出文件名
print f.mode ##open函数没有指定mode时,默认r模式
print f.read() ##读取文件内容(mode为r只读模式)
f.close() ##关闭文件
print f.closed ##返回值为True表示文件已经关闭
结果:
<open file '/tmp/passwd', mode 'r' at 0x7fd130dbc6f0>
/tmp/passwd
r
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...(省去很多行)
True
关于文件打开的模式(mode)
r:
文件不存在时,报错error
只能读,不能写
r+:
文件不存在,报错error
可以读写
在打开文件时,不清除原有内容
w:
只能写,不能读
文件不存在,创建文件
在打开文件时,清除原有内容
w+:
可以读写
文件不存在,创建文件
在打开文件时,清除文件原有内容
a:
文件不存在,创建文件
在打开文件时,不清除原有内容
不能读,只能写
a+:
文件不存在,创建文件
在打开文件时不清除元内容
可以读,可以写
对于二进制文件有给以上各个模式后加上b即可
如:r -->>rb
r+ --->>rb+
w---->>wb
w+---->>wb+
...
f.seek()方法
f.seek()方法:
需要传两参数:第一个参数:偏移量,为正,向右偏移,为负数,向左偏移,为0,不偏移
第二个参数:0:指向文件开头;1:当前位置;2:文件末尾
f.tell()查看当前位置
文件与文件的路径
os模块
先看示例:(不管文件是否真的存在)
import os
print os.path.join('usr','bin','ls')
---结果
usr/bin/ls
import os
myfiles=['account.txt','details.csv','invite.docs']
for filename in myfiles:
print os.path.join('/tmp',filename)
---->>结果
/tmp/account.txt
/tmp/details.csv
/tmp/invite.docs
列出/var/log/的所有文件
import os
print os.listdir('/var/log')
查看当前系统的路径分隔符
print os.path.sep
/
查看文件大小
print os.path.getsize('/etc/passwd')
print os.path.abspath('passwd') ##查看绝对路径
print os.path.dirname('/etc/passwd') ##查看目录名
print os.path.basename('/etc/passwd')##查看文件名
print os.getcwd() ##查看当前工作环境路径