Python学习笔记13_文件及目录操作

#学习内容均为《Python从入门到精通》(明日科技),这本书十分推荐新手阅读
'''
在Python中想要操作文件,需要先创建或者打开指定的文件,并创建文件对象。这可以通过内置的open()函数实现
file = open(filename[,mode[,buffering]])
file:被创建的文件对象。
filename:要创建或者打开的文件名称,需要使用单引号或者双引号括起来。如果要打开的文件和当前文件在同一目录下,那么直接写文件名即可。否则需要指定完整路径。
mode:可选参数,用于指定文件的打开方式。默认的方式为只读(即r)。

mode参数的参数值说明
r       (文件必须存在)                         以只读模式打开文件,文件的指针会放在文件的开头。
rb      (文件必须存在)                         以二进制格式打开文件,并且采用只读模式,指针放在开头,一般用于非文本文件,如图片、声音等。
r+      (文件必须存在)                         打开文件后,可以读取文件内容,也可以写入新的内容覆盖原有内容(从文件开头进行覆盖)
rb+     (文件必须存在)                         以二进制格式打开文件,并且采用读写模式。
w       (文件存在,则将其覆盖,否则创建新文件)  以只写模式打开文件
wb      (文件存在,则将其覆盖,否则创建新文件)  以二进制格式打开文件,并且采用只写模式
w+      (文件存在,则将其覆盖,否则创建新文件)  打开文件后,先清空原有内容,使其变成一个空的文件,对这个空文件有读写权限
wb+     (文件存在,则将其覆盖,否则创建新文件)  以二进制格式打开文件,并且采用读写模式
a                                             以追加模式打开一个文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入已有内容之后),否则,创建新文件用于写入
ab                                            以二进制格式打开文件,并采用追加模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入已有内容之后),否则,创建新文件用于写入
a+                                            以读写模式打开文件。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入已有内容之后),否则,创建新文件用于读写
ab+                                           以二进制格式打开文件,并采用读写模式。如果该文件已经存在,文件指针将放在文件的末尾(即新内容会被写入已有内容之后),否则,创建新文件用于读写

buffering:可选参数,用于指定读写文件的缓冲模式,值为0表示不缓存;值为1表示缓存;如果大于1,则表示缓冲区的大小。默认为缓存模式
'''

file = open('C:/Users/admin/Desktop/Temporary/text1.txt','r',encoding='utf-8')
#默认采用GBK编码,如果被打开的文件不是GBK编码,会抛出异常,因此,通过添加encoding = 'utf-8'可实现指定编码格式为utf-8
print(file.read())                       #恭喜你成功打开了这个记事本
file.close()
#打开文件后,需要及时关闭。也可以使用with语句来保证及时关闭

with open('C:/Users/admin/Desktop/Temporary/text1.txt','r',encoding='utf-8') as e:
    print(e.read(9))                      #恭喜你成功打开了这

'''写入文件内容
file.write(string)
'''
file = open('C:/Users/admin/Desktop/Temporary/text1.txt','a',encoding='utf-8')
file.write('这是新写入的内容\n')
file.close()
#打开后显示
# 恭喜你成功打开了这个记事本这是新写入的内容
# 这是新写入的内容

'''读取文件
file.read([size])
size:可选参数,用于指定要读取的字符个数

使用read()方法读取文件时,是从文件的开头读取的。如果要读取部分内容,可以先试用文件对象的()方法将文件的指针移动到新的位置,在应用read()方法读取
file.seek(offset[,whence])
offset:用于指定移动的字符个数,其具体位置与whence有关
whence:用于指定从什么位置开始计算。值为0表示从文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0
对于whence参数,如果打开文件是没有使用b模式(即rb),那么只允许从文件头开始计算相对位置
'''




'''目录操作'''
import os
'''os模块提供的与目录相关的函数
getcwd()                                  返回当前的工作目录
listdir(path)                             返回指定路径下的文件和目录信息
mkdir(path[,mode])                        创建目录
makedirs(path1/path2...[,mode])           创建多级目录
rmdir(path)                               删除目录
removedirs(path1/path2...)                删除多级目录
chdir(path)                               把path设置为当前工作目录
walk(top[,topdown[,onerror]])             遍历目录树,该方法返回一个元组,包括所有路径名,所有目录列表和文件列表3个元素


os.path模块也提供了一些函数
abspath(path)                             用于获取文件或目录的绝对路径
exists(path)                              用于判断目录或者文件是否存在,如果存在则返回True,否则返回False
join(path,name)                           将目录与目录或者文件名拼接起来
splitext()                                分离文件名和扩展名
basename(path)                            从一个目录中提取文件名
dirname(path)                             从一个路径中提取文件路径,不包括文件名
isdir(path)                               用于判断是否为有效路径
'''

print(os.getcwd())
# D:\Account\Python从入门到精通

'''关于其他模块操作请自行搜索论坛,这里就不一一展开了,原理大同小异'''

你可能感兴趣的:(学习笔记,python,python)