python文件和目录操作及文件的读写

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())
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值