python os模块——用于文件和目录的操作
python内置的os模块可以直接调用操作系统提供的接口函数
os.environ ——获取系统的环境变量(os.environ.get(“key”))
获取绝对路径:os.path.abspath()
获取相对路径:os.path.realpath()
获取当前工程的初始目录:os.getcwd()
获取当前目录(正斜杠):logger.info(os.path.dirname(__file__
))
目录拼接:os.path.join(path,"")
目录分割:os.path.split(path)——分割前面的和最后一级
os.path.splitext(path)——分割前面的和扩展名
注:分割函数只针对字符串,不要求目录和文件真实存在
获取上级目录:os.path.abspath(os.path.join(path,"…"))
获取上上级目录:os.path.abspath(os.path.join(os.getcwd(), “…/…”))
判断目录是否存在:os.path.exists(path)
创建目录:os.makedirs(path)——目录不存在时全都自动创建
os.mkdir(path)——只创建目录的最后一级,前面不存在时报错
列出当前路径下的信息:c=os.walk(path) 结果:c[0]:当前目录路径;c[1]:当前路径下的所有子目录 c[2]:当前目录下所有的非子目录文件
import os
def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
print('root_dir:', root) # 当前目录路径
print('sub_dirs:', dirs) # 当前路径下所有子目录
print('files:', files) # 当前路径下所有非目录子文件
file_name('D:\stock_data')
测试:
logger.info(os.getcwd())
logger.info(os.path.dirname(__file__))
logger.info(os.path.abspath(os.path.join(os.getcwd(),"..")))
logger.info(os.path.abspath(os.getcwd()))
logger.info(os.path.relpath(os.getcwd()))
输出:
2019-06-19 10:10:00,198 - logger.py[line:45] - INFO: C:\Users\koala\PycharmProjects\pythonTest\service
2019-06-19 10:10:00,198 - logger.py[line:46] - INFO: C:/Users/koala/PycharmProjects/pythonTest/service
2019-06-19 10:10:00,198 - logger.py[line:47] - INFO: C:\Users\koala\PycharmProjects\pythonTest
2019-06-19 10:10:00,199 - logger.py[line:48] - INFO: C:\Users\koala\PycharmProjects\pythonTest\service
2019-06-19 10:10:00,199 - logger.py[line:49] - INFO: .
文件的读写
读文件:f = open("path",'r',encoding='utf-8',errors='ignore')
errors参数——标识遇到字符编码错误如何处理
一次读取文件的全部内容:f.read()
读取部分文件内容:f.read(size)
按行读取:f.readline()
读取所有行:f.readlines()
写文件:f = open("path",'w')
‘w’——覆盖
‘a’——追加
f.wirte(“msg”)
无论读文件还是写文件,都需要再最后关闭文件流,为了避免麻烦,可以使用with关键字,with语句会自动帮我们调用close方法
with open('/path/to/file', 'r') as f:
print(f.read())