Python_day_07_文件操作

1.格式

f = open(filename[, mode])
print f.tell()  ##查看当前索引位置
print f.read()  ##读取
f.close()   ##结束

2.文件打开模式

r:
    文件不存在时,error;
    只能r,不能w;
r+:
    文件不存在时, error;
    可以读写;
    在打开文件时, 不会清除文件原有内容;
w:
    只能w,不能读
    文件不存在时, 创建该文件;
    在打开文件时, 清除文件原有内容;
w+:
    可以读写;
    文件不存在时, 创建该文件;
    在打开文件时, 清除文件原有内容;
a:
    文件不存在时, 创建该文件;
    在打开文件时, 不清除文件原有内容;
    不能读取,只能w;
a+:
    文件不存在时, 创建该文件;
    在打开文件时, 不清除文件原有内容;
    可以读写;

如果读写二进制数据时, 在原有mode后面加b;

r, rb; r+, rb+; w, wb; w+, wb+; a, ab; a+, ab+;

f.seek用法

f.write('java')
seek方法需要传两个参数:
     1). 第一个参数: 偏移量;偏移量>0,代表向右偏移, 反之,向左偏移; =0,不偏移;
     2). 0: 文件开头; 1代表当前位置; 2代表文件末尾;
f.seek(3,0)
print f.tell()  
print f.read()  
f.close()

3.os模块

import os

1)os.path

myFiles = ['account.txt', 'details.csv', 'invite.docx']
for filename in myFiles:
    print os.path.join('/tmp/', filename)   ##路径连接
结果为
/tmp/account.txt
/tmp/details.csv
/tmp/invite.docx

print os.path.abspath('hello')          ##当前文件绝对路径
print os.path.isabs('/home/kiosk/Desktop/untitled/hello')   ##当前路径绝对路径是否为,返回布尔值
print os.path.dirname('/etc/passwd')        ##文件路径上层目录(除了当前底层目录)
print os.path.basename('/etc/password')     ##文件路径底层目录
print os.path.split('/etc/passwd/aa')       ##将文件路径分块(上层和底层)
print 'etc/passwd/aa'.split(os.path.sep)    ##将文件路径全部分块
print os.path.sep               ##相当于分隔符 /
print os.path.getsize('/etc/passwd')        ##文件大小
print os.listdir('/mnt')            ##列出
print os.path.exists('/etc/passwd')     ##判断是否存在,返回布尔值

2)os.getcwd / os.chdir ##所在目录查询 / 改变路径

print os.getcwd()
os.chdir('/mnt')
print os.getcwd()

3)os.makedirs ##建立目录

os.makedirs('/tmp/hello01')

4)shelve

shelve是python的自带model,可以直接通过import shelve来引用,
shelve类似于一个存储持久化对象的持久化字典,即字典文件。
使用方法也类似于字典。

import shelve

devin = dict(name='devin')
tom = dict(name='tom')
op = shelve.open('/mnt/123')
op['devin'] = devin
op['tom'] = tom
print op
print op['devin']
op.close()

#4.文件读取
from collections import Iterable
f = open('/mnt/passwd', 'r')
print f.readable()  ??

print f.readline()  ##显示一行内容
print f.readline()
print f.readline()
** strip去除\n,\t,
print [line.strip() for line in f.readlines()]
print type(f)       ##file 类型
f.close()

print isinstance(f, Iterable)
for i in f:         # 迭代器,open文件内容可迭代
    print i

5.文件写入

users = [
    'user1:passwd:westos',
    'user2:passwd2:westos',
    'user3:passwd3:westos',
]

users = [user + '\n' for user in users]

f = open('/tmp/passwd.swp', 'w+')
f.write('hello world')  ##单行写入
f.writelines(users) ##多行写入
f.seek(0, 0)
print f.read()
f.close()


阅读更多
文章标签: python
个人分类: linux基础
上一篇Python_day_06_装饰器
下一篇Python_day_07_面向对象编程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭