目录
文件的读写
常用文件打开方式
r | 只读模式,文件指针将会放在文件开头 |
w | 只写模式,如果文件存在,覆盖,且文件指针在文件的开头;如果文件不存在,新建 |
a | 只写模式,如果文件存在,追加,且文件指针在文件的开头;如果文件不存在,新建 |
文件对象常用方法
read([size]) | 从文件中读取size个字节或字符的内容返回,若省略size,则读取到文件末尾,即一次性全部读取 |
readline() | 从文本文件中读取一行内容 |
readlines() | 将每一行的内容作为独立的字符串对象,放入一个列表中 |
write(str) | 将字符串str内容写入文件中 |
writelines(s_list) | 将字符串列表s_list写入文件中,注意不会加换行符 |
seek(offset) | 将文件指针移动到offse位置 |
tell() | 获取文件指针的位置 |
flush() | 将缓冲区的内容写入文件,但不关闭文件 |
close() | 将缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源 |
file = open('a.txt','r',encoding = 'utf-8')
#print(file.read(2))
#print(file.read())
#print(file.readline())
print(file.readlines())#['hello world\n', 'hello\n', '你好']
file.close()
file = open('c.txt','a')
file.write('你好')
lst = ['java','c++','python']
file.writelines(lst)
file.close()
c.txt文件中
你好你好你好javac++python
file = open('a.txt','r',encoding= 'utf-8')
file.seek(2)
print(file.read())
print(file.tell())
file.close()
with语句(上下文管理器)
with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确关闭,以此达到释放资源的目的
例如
with open('a.txt','r') as file:
print(file.read())
os常用函数
1.操作系统相关的模块
import os
#os模块与操作系统相关的一个模块
os.system('notepad.exe')#打开记事本
os.system('calc.exe')#打开计算器
2.可执行文件
import os
#直接调用可执行文件
os.startfile('D:\\Temp\\xidianketang\\4.4.7\\西电课堂.exe')
3.操作目录相关函数
getcwd() | 返回当前目录列表 |
listdir(path) | 返回指定路径下的文件和目录信息 |
mkdir(path) | 创建目录 |
makedirs(path1/path2/...) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2/...) | 删除多级目录 |
chdir(path) | 将path设置为当前工作目录 |
import os
print(os.getcwd())#C:\Users\86198\PycharmProjects\pythonProject\chap15
lst = os.listdir('../chap15')
print(lst)
#['a.txt', 'b.txt', 'c.txt', 'demo.py', 'demo1.py', 'demo2.py', 'demo3.py', 'demo4.py', 'demo5.py', 'demo6.py', 'demo7.py', 'demo8.py']
#/一般是根目录,叫从根目录找,叫绝对路径,./ 是当前目录, ../是上一级,是相对于此文件的路径,叫相对路径。
#os.mkdir('newdir')
#os.makedirs('a/b/c')
#os.rmdir('newdir')
#os.removedirs('a/b/c')
os.chdir('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15')
print(os.getcwd())
os.path模块
abpath(path) | 获取文件或目录的绝对路径 |
exists(path) | 返回值为布尔值,用于判断文件和目录是否存在 |
join(path,name) | 将目录和文件拼接起来 |
splitext() | 分离文件和扩展名 |
basename(path) | 从目录中获取获取文件名 |
dirname(path) | 从一个路径中获取文件目录,不包括文件名 |
isdir(path) | 判断是否为路径 |
import os.path
print(os.path.abspath('demo9.py'))#C:\Users\86198\PycharmProjects\pythonProject\chap15\demo9.py
print(os.path.exists('demo9.py'),os.path.exists('demo19.py'))#True False
print(os.path.join('C:\\pythonProject','demo9.py'))#C:\pythonProject\demo9.py
print(os.path.split('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15\\demo9.py'))#('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15', 'demo9.py')
print(os.path.splitext('demo9.py'))#('demo9', '.py')
print(os.path.basename('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15\\demo9.py'))#demo9.py
print(os.path.dirname('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15\\demo9.py'))#C:\Users\86198\PycharmProjects\pythonProject\chap15
print(os.path.isdir('C:\\Users\\86198\\PycharmProjects\\pythonProject\\chap15\\demo9.py'))#False
实例:
获取指定目录下所有py文件
#实例:打印当前目录下所有python文件名
import os
path = os.getcwd()
lst = os.listdir(path)
for filename in lst:
if filename.endswith('.py'):
print(filename)