文件操作

操作文件的步骤

打开–> 操作 -> 关闭

打开文件

f=open('/etc/passwd')
print(f)

操作文件

wenjian=f.read()
print(wenjian)

关闭文件

f.close()

文件读取模式的选择

r: 可读不可写,所读文件必须存在,否则报错

r+:可读可写,所读文件必须存在,否则报错

w:可写不可读,若文件存在,则清空文件内容;若文件不存在,则创建文件,不会报错

w+:可读可写,若文件存在,则清空文件内容;若文件不存在,则创建文件,不会报错

a:可写不可读,若文件存在,不会清空文件内容;若文件不存在,则创建文件,不会报错

a+:可读可写,若文件存在,不会清空文件内容;若文件不存在,则创建文件,不会报错

文件读取的命令语句

f=open('文件位置',mode='模式')

读取文件时应该注意,当文件较小时,可以用文件read方法直接读取,但是当文件大小大于内存大小时,就不能直接读取了,此时应该用readline()方法或者readlines()方法,注意readlines()方法返回的是一个列表,列表元素为文件行内容,可用列表生成式读取

print([line.strip() for line in f.readlines()])
print([list(map(lambda x:x.strip(),f.readlines()))])

文件指针

指针:是指当前光标所在位置

当执行read或者write后,文件指针调转到文件最末,此时再进行读取或者写入时,都将从文件末尾执行命令,f.tell()可以显示当前指针所在位置

文件指针操作为seek()方法,seek中只能写0,1,2,这三个数之中的其中一个或者两个

0:是指文件指针位于文件开头

1:是指文件指针位于当前位置

2:是指文件指针位于文件末尾

例:f.seek(0,2)将指针从文件开头移动到文件末尾,f.seek(1,2)将指针从当前移动到文件末尾

with 语句

with open ('文件名') as f:
...

执行完with语句后,自动关闭文件对象

yield:将文件封装成一个生成器

通过yield,每一次读取一行进行处理,如果可以读取到内容,返回该行信息。

可以通过next来读取生成器的内容,每出现一个next,则读取一行内容

若要读取多行,可用for 循环遍历生成器内容

判断是否可迭代,即是否可 for循环—-isinstance,调用模块from collections import Iterable

os模块 import os

判断是否为绝对路径—’/tmp/hello’, ‘hello.png’, ‘qq/hello.mp3’

import os
import random
from os.path import exists, splitext, join
print(os.path.isabs('/tmp/hello'))
print(os.path.isabs('hello'))

生成绝对路径

print(os.path.abspath('/tmp/hello'))
print(os.path.abspath('hello.png'))
print(os.path.join('/home/kiosk', 'hello.png'))

返回一个绝对路径: 当前目录的绝对路径+ 文件名/目录名

print(os.path.join(os.path.abspath('.'), 'hello.png'))

获取目录名或者文件名

filename = '/home/kiosk/Desktop/201808python/day10/hello.png'
print(os.path.basename(filename))
print(os.path.dirname(filename))

创建目录/删除目录 mkdir -p qq/qq1/qq1 递归创建目录

os.makedirs('img/films')
os.mkdir('img')
os.rmdir('img')

创建文件/删除文件

os.mknod('00_ok.txt')
os.remove('00_ok.txt')

文件重命名(mv)

os.rename('data.txt', 'data1.txt')

判断文件或者目录是否存在

print(os.path.exists('img'))

分离后缀名和文件名

print(os.path.splitext('hello.png'))
print(os.path.split('hello.png'))

将目录名和文件名分离

print(os.path.split('/tmp/hello/hello.png'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值