Python 编程中对文件或目录的操作(os模块)

一、编码格式介绍

        1.Python的解释器使用的是Unicode(内存)。

        2. “.py”文件在磁盘上使用UTF-8的存储方式。

二、文件内容的读写/读取磁盘文件中的内容

        1.Python操作文件—》打开或创建文件—》读、写文件—》关闭资源

        2.读文件

                file = open('filename'[,'mode','encoding'])

Python 编程中对文件或目录的操作(os模块)_第1张图片

file = open('数据结构18计算机二班平时成绩1.txt','r')
print(file.read())
file.close()#释放读文件过程中的所有资源

 三、常用文件打开模式

        1.文件类型

                1、文本文件:存储的是普通“字符”文本,默认为Unicode字符集。

                2、二进制文件:数据内容用“字节”进行存储。

        2.mode(衔接读文件mode参数)

r 只读文件、文件的指针将会放在文件的开头。
w 制度模式文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件开头。
a 以追加模式打开文件,文件不存在则创建,文件指针在文件开头;如果存在,从文件末尾追加内容,文件指针在原文件文件末尾。
b 以二进制方式打开文件,不能单独使用,需要与其它模式一起使用,"rb"或“wb”(例如图片)
+ 以读写方式打开文件,不能单独使用,需要与其它模式一起使用,"a+"
fe = open('4bcb89b2f78b17653b3f3581f59a5245.jpeg','rb')
sz = open('copy.jpeg','wb')#复制照片到copy.jpeg文件
sz.write(fe.read())

fe.close()
sz.close()

四、文件对象常用方法

read([size]) 以文件中读size字节或字符的内容返回,若省略[size]直接读取到末尾。
readline() 文件中读取一行内容。
readlines() 把文件中每一行都作为独立的字符对象,并将这些对象放入到列表。
write(str) 将字符串内容写入文件。
writelines(s_list) 将字符串列表s_list写入文本文件,不添加换行符。
seek(offset[,whence]) 把文件指针移动到新的位置,offset表示相对于whence的位置,offset:为正往结束方向移动,为负往开始方向移动,whence:不同值代表不同含义;0:文件开头计算(默认);1:从当前位置开始计算;2:从文件末尾开始计算;
tell() 返回文件指针当前位置(从0开始计算)
flush() 把缓冲区的内容写入文件,但不关闭文件。
close() 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源;(关闭后再不能写入)
file = open('a.txt','r')
print(file.read())
print(file.readline())
print(file.readlines())#3个print分别运行;
file.close()

helloPython

hello

['hello\n', 'Python']

a.txt文件

Python 编程中对文件或目录的操作(os模块)_第2张图片

file = open('c.txt','r')
file.seek(2)    #一个汉字2个字节;从第3个字节开始读
print(file.read())
print(file.tell())#返回指针当前位置;
file.close()

 好中国
加油中国

20 #8个汉字+一个回车

         c.txt文件

Python 编程中对文件或目录的操作(os模块)_第3张图片

 五、with语句(上下文管理器)

        with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的;

Python 编程中对文件或目录的操作(os模块)_第4张图片

with open('a.txt','r') as file:
    print(file.read())  #with语句不用手动关闭文件
lass MyContentMgr(object):
    def __enter__(self):
        print('enter方法被调用')
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        print('exit方法被调用')
    def show(self):
        print('show方法被调用')
        #print('show方法被调用',1/0)# 离开时自动调用__exit__方法
with MyContentMgr() as file:
    file.show()

enter方法被调用
show方法被调用
exit方法被调用        #执行顺序就可以看出;

六、目录(os模块)

        os模块用于对目录或文件进行操作 。

system() 执行电脑上的小软件;calc.exe:打开计算器;notepad.exe:记事本;
startfile() 调用可执行文件;QQ、微信;把地址输入就可以;
getcwd() 返回当前工作目录;
listdir(path) 返回指定路径下的文件和目录信息;
mkdir(path[mode]) 创建目录
makedirs(path1/path2...[,mode]) 创建多级目录
rmdir(path) 删除目录
removedirs(path1/path2...) 删除多级目录
chdir(path) 设置path为当前目录
import os
#os.system('calc.exe')#打开计算器
#os.system('notepad.exe')#打开记事本

执行文件
#os.startfile('C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe')#打开微信

print(os.getcwd())#获取当前目录
print(os.listdir('../15文件'))#获取指定路劲下的文件
#os.makedirs('A/B/C')#创建多级目录
#os.removedirs('A/B/C')#删除多级目录

#os.chdir('E:\\python\\假期\\11.BUG')
print(os.getcwd())

E:\python\假期\15文件
['4bcb89b2f78b17653b3f3581f59a5245.jpeg', 'a.txt', 'c.txt', 'copy.jpeg', 'FF.py', 'new_4bcb89b2f78b17653b3f3581f59a5245.jpeg', 'nuw', 'os.path常用方法.py', 'with语句.py', '数据结构18计算机二班平时成绩1.txt', '目录(os).py', '读文件.py']
E:\python\假期\15文件

 七、walk语句

path = os.getcwd()
lst_file = os.walk(path)#返回的是一个元组
for dirpath,dirname,filename in lst_file:
    for dir in dirname:
        print(os.path.join(dirpath,dir))

    for file in filename:
        print(os.path.join(dirpath, file))
    print('----------------------------')

E:\python\假期\15文件\nuw
E:\python\假期\15文件\4bcb89b2f78b17653b3f3581f59a5245.jpeg
E:\python\假期\15文件\a.txt
E:\python\假期\15文件\c.txt
E:\python\假期\15文件\copy.jpeg
E:\python\假期\15文件\FF.py
E:\python\假期\15文件\new_4bcb89b2f78b17653b3f3581f59a5245.jpeg
E:\python\假期\15文件\os.path常用方法.py
E:\python\假期\15文件\with语句.py
E:\python\假期\15文件\数据结构18计算机二班平时成绩1.txt
E:\python\假期\15文件\目录(os).py
E:\python\假期\15文件\读文件.py
----------------------------
E:\python\假期\15文件\nuw\nuw2
E:\python\假期\15文件\nuw\1.py
E:\python\假期\15文件\nuw\2.py
----------------------------
E:\python\假期\15文件\nuw\nuw2\96.py
----------------------------

八、os.path常用模块于方法 

abspath(path) 用于获取文件或目录的绝对路径
exists(path) 用于判断文件或目录是否存在,存在True,否则False
join(path,name) 将目录与目录或者文件名拼接起来
splitext() 分离文件名和扩展名
basename(path) 从一个目录中提取文件名
dirname(path) 从一个路径中提取文件路径,不包括文件名
isdir(path) 用于判断是否为路径(目录不包括文件名)
import os.path
print(os.path.abspath('with语句.py'))
print(os.path.exists('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.join('E:\\python\假期\\15文件','读文件.py'))
print(os.path.splitext('with语句.py'))
print(os.path.basename('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.dirname('E:\\python\假期\\15文件\\with语句.py'))
print(os.path.isdir('E:\\python\假期\\15文件\\with语句.py'))

E:\python\假期\15文件\with语句.py
True
E:\python\假期\15文件\读文件.py
('with语句', '.py')
with语句.py
E:\python\假期\15文件
False        #目录不包括文件名

 九、筛选当前目录下目标文件

import os
file = os.getcwd()
lst = os.listdir(file)
for filename in lst:
    if filename.endswith('.py'):
        print(filename)

FF.py
os.path.py
os.path常用方法.py
with语句.py
目录(os).py
读文件.py 

        如果博客内容有什么错误,可以私信,我们一起讨论;

                                        ^0^

你可能感兴趣的:(python,开发语言)