文件操作&OS模块

文件读取
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
Character Meaning
--------- ---------------------------------------------------------------
'r'       open for reading (default)
'w'       open for writing, truncating the file first
'x'       create a new file and open it for writing
'a'       open for writing, appending to the end of the file if it exists
'b'       binary mode
't'       text mode (default)
'+'       open a disk file for updating (reading and writing)
'U'       universal newline mode (deprecated)
========= ===============================================================

The default mode is 'rt' (open for reading text).

如果是除text的类型,open时需使用'rb'作为参数,open('','rb')

文件读取流程:

open(文件名) --->返回值:stream ---> stream.read 读取管道中的内容

读操作

read    readable  readline  readlines

st = open(r'D:\test.txt')  # r用来去除转义
con = st.read()  # 读取文件内容
print(con)
con = st.readable()  # 判断文件是否可以读取,返回bool类型
print(con)

st = open(r'D:\test.txt')  # r用来去除转义
con = st.readline()  # 根据顺序返回文件内一行
print(con)

st = open(r'D:\test.txt')  # r用来去除转义
con = st.readlines()  # 根据顺序返回文件所有行,返回值为一个列表
print(con)

hello
world
True
hello

['hello\n', 'world']

写操作

mode是'w'模式,为写操作,每次都会讲原内容删除,写入当前内容

mode是'a'模式,为追加写操作,往原文件中追加

write writelines

st = open(r'D:\test.txt', 'w')
st.write('welcome')  # 文件写入
st.writelines(['hello', 'world'])  # 通过可迭代类型写入文件,默认没有换行效果
st.close()  # 释放资源

文件内显示:
welcomehelloworld

st = open(r'D:\test.txt', 'a')  # 追加写入
st.write('how are you')
st.close()  # 释放资源

文件内显示:
welcomehelloworldhow are you

文件复制

原理:通过读取-->写入 分两步进行文件复制

举例

with open(r'D:\3-141023161035.jpg', 'rb') as stream:  # 使用with,可以自动释放资源
    con = stream.read()
    with open(r'D:\1.jpg', 'wb') as wstream:
        wstream.write(con)

OS模块

import os

os.path.dirname(__file__)  查询当前目录路径 os.getcwd()可以达到同样效果

os.path.join('path','filename')  根据目录路径,文件名拼接绝对路径

os.path.abspath('filename')  通过相对路径返回绝对路径

os.path.isabs('path')  判断是否是绝对路径,返回值为布尔类型

os.path.isfile('path') # 判断是否为文件

os.path.isdir('path') # 判断是否为目录

os.listdir('path')#列举目录下所有项,以列表输出

os.path.split  os.path.splitext  os.path.getsize

result = os.path.split(r'D:\3-141023161035.jpg')  # 将绝对路径分割为目录、文件名的元组
print(result)
result = os.path.splitext(r'D:\3-141023161035.jpg')  # 分隔文件的扩展名
print(result)
result = os.path.getsize(r'D:\3-141023161035.jpg')  # 已字节为单位输出文件大小
print(result)

('D:\\', '3-141023161035.jpg')
('D:\\3-141023161035', '.jpg')
181414
os.path.exists os.mkdir os.rmdir os.remove
result = os.path.exists(r'D:\1.py')  # 判断文件是否存在
print(result)
os.mkdir(r'D:\1.py')  # 创建文件夹
os.rmdir(r'D:\1.py')  # 删除文件夹,删除时目录必须为空
os.remove(r'D:\1.jpg')  # 删除文件
os.chdir(r'D:\\')  # 切换当前所在目录
print(os.getcwd())

False
D:\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值