Python关于OS文件目录处理的实例分享


Posted in Python onMay 23, 2021

Python----OS 文件目录处理

import os
import time

# 获取当前文件的绝对路径
dir_1 = os.path.abspath(__file__)    # D:\workspace\web-test\Study\Day_5-16\tset3.py


# 获取当前文件所在目录的上级路径
dir_2 = os.getcwd()                    # D:\workspace\web-test\Study\Day_5-16
dir_3_1 = os.path.dirname(dir_1)       # D:\workspace\web-test\Study\Day_5-16
dir_3_2 = os.path.dirname(dir_3_1)     # D:\workspace\web-test\Study


# 获取当前文件所在目录的上级路径
dir_4 = os.path.abspath(os.path.join(os.getcwd(),"./"))      # D:\workspace\web-test\Study\Day_5-16
dir_5 = os.path.abspath(os.path.join(os.getcwd(),"../"))     # D:\workspace\web-test\Study
dir_6 = os.path.abspath(os.path.join(os.getcwd(),"../../"))  # D:\workspace\web-test



# 获取当前日期
new_time_day = time.strftime('%Y-%m-%d')      # 2021-05-21
# 拼接目录
dir_image_day_pingjie = os.path.join(dir_4,new_time_day)  # D:\workspace\web-test\Study\Day_5-16\2021-05-21

#判断目录是否存在,不存在就创建
if not os.path.exists(dir_image_day_pingjie):
    #创建文件
    os.mkdir(dir_image_day_pingjie)
import os

# os.mkdir("n1")  # 创建目录

# 创建文件
# with open('1.txt',mode='w') as file:
#     file.write('11111')

# os.mknod("n1.txt")    # 创建文件,windows上面不支持,linux中支持

url = r"D:\workspace\test36-demo\study\Day_4_13\n2"
print('n2目录下的内容',os.listdir(url))  #列出目录下的所有目录和文件

# os.rename('1.txt','2.txt')   # 文件重命名
print(os.getcwd())    # 获取当前目录(绝对路径 )

# os.rmdir('n1')    # 删除一个空目录
# os.remove('1.txt')   # 删除一个文件


print("文件/目录是否存在:",os.path.exists('1.txt'))    # 判断文件/目录是否存在,结果 True/False
print('对象是否为目录:',os.path.isdir('2.txt'))        # 判断目录是否存在,是True/否False
print('对象是否为文件:',os.path.isfile('2.txt'))       # 判断文件是否存在,是True/否False

print('文件/目录的绝对路径:',os.path.abspath('n1/n1.txt'))  # 获取文件/目录的绝对路径
print('获取文件的大小:',os.path.getsize('n1/n1.txt'))       # 获取文件的大小(单位:b 字节)

url_name = r"D:\workspace\test36-demo\study\Day_4_13\n1\n1.txt"
name = os.path.basename(url)   # 获取文件名/文件夹的名称
dir  = os.path.dirname(url)    # 获取文件/文件夹的路径
print('dir---->',dir,'\t\t\t','name---->',name)

print('分离文件名与扩展名:',os.path.splitext('aa.py'))             # 只会进行分离,不会判断文件是否真实存在
print('分离路径和文件:',os.path.split('D:\w1\w2\w3'))   # 只会进行分离,不会判断目录及文件是否真实存在




print('\n\n--------------------------------作业-----------------------------')
# 练习一:判断文件夹是否存在,不存在就创建文件夹,存在就进去,创建一个文件
if os.path.exists("n1") == False:
    os.mkdir('n1')

os.chdir('n1')   # 进入目录
with open('n1.txt',mode='w') as file:
    file.write('我的新的')


# 练习二:获取n2文件夹下面的所有内容,删除所有的文件夹
url2 = r"D:\workspace\test36-demo\study\Day_4_13\n2"
data = os.listdir(url2)   #列出目录下的所有目录和文件
for i in data:
    if os.path.isdir(os.path.join(url2,i)) == True:  # 判断是否是目录
          os.rmdir(os.path.join(url2,i))             # 是目录则删除


# 练习三:自己实现一个os.path.split 分离目录与文件夹
url_name = r"D:\workspace\test36-demo\study\Day_4_13\n1"
name = os.path.basename(url)   # 获取文件名/文件夹的名称
dir  = os.path.dirname(url)    # 获取文件/文件夹的路径
print('目录---->',dir,'\t\t\t','文件夹---->',name)

知识点扩展:

Python OS 模块 文件目录操作

os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数。由于Linux是C写的,低层的libc库和系统调用的接口都是C API,而Python的os模块中包括了对这写接口的Python实现,通过Python的os模块,可以调用系统的功能,进行系统编程。

下面介绍一下os模块中提供的一些文件操作(仅限Unix平台):

返回文件对象的操作

os.fdopen(fd, [mode, [bufsize]])

通过文件描述符 fd 创建一个文件对象,并返回这个文件对象

fd参数是一个打开的文件的描述符,在Unix下,描述符是一个小整数。

mode参数是可选的,和buffersize参数和Python内建的open函数一样,mode参数可以指定‘r,w,a,r+,w+,a+,b'等,表示文件的是只读的还是可以读写的,以及打开文件是以二进制还是文本形式打开。这些参数和C语言中的<stdio.h>中fopen函数中指定的mode参数类似。

bufsize参数是可选的,指定返回的文件对象是否带缓冲:buffersize=0,表示没有带缓冲;bufsize=1,表示该文件对象是行缓冲的;bufsize=正数,表示使用一个指定大小的缓冲冲,单位为byte,但是这个大小不是精确的;bufsize=负数,表示使用一个系统默认大小的缓冲,对于tty字符设备一般是行缓冲,而对于其他文件则一般是全缓冲。如果这个参数没有制定,则使用系统默认的缓冲设定。

os.popen(command, [mode, [bufsize]])

开启一个子进程执行一个command指定的命令,在父进程和子进程之间建立一个管道pipe,用于在父子进程间通信。返回一个文件对象,可以对这个文件对象进行读或写,取决于参数mode,如果mode指定了只读,那么只能对文件对象进行读,如果mode参数指定了只写,那么只能对文件对象进行写操作。

command参数指定需要在子进程中执行的命令.

mode参数和bufsize参数和上述的os.fdopen一样。

os.popen函数还有一些其他的变种,可以按需要使用:

os.popen2(command, [mode, [bufsize]])

在子进程中执行命令command,返回一个二元组(child_stdin, child_stdout)

os.popen3(command, [mode, [bufsize]])

在子进程中执行命令command,返回一个三元组(child_stdin, child_stdout, child_stderr)

os.popen4(command, [mode, [bufsize]])

在子进程中执行命令command,返回一个二元组(child_stdin, child_stdout_and_stderr)

os.tmpfile()

返回一个以”w+b“模式打开的文件对象,该文件对象对应的文件无法通过目录访问,这是一个临时文件,当文件对象被关闭的时候,该临时文件也就被删除。

到此这篇关于Python关于OS文件目录处理的实例分享的文章就介绍到这了,更多相关Python OS文件目录处理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python操作MySQL数据库的方法分享
May 29 Python
使用 Python 获取 Linux 系统信息的代码
Jul 13 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python random模块用法解析及简单示例
Dec 18 Python
深入理解Python爬虫代理池服务
Feb 28 Python
python使用Flask操作mysql实现登录功能
May 14 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
Python 实现数据结构-堆栈和队列的操作方法
Jul 17 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
python引入其他文件夹下的py文件具体方法
Python 解决空列表.append() 输出为None的问题
May 23 #Python
Python - 10行代码集2000张美女图
python办公自动化之excel的操作
May 23 #Python
python爬取豆瓣电影TOP250数据
May 23 #Python
基于Python绘制子图及子图刻度的变换等的问题
聊聊pytorch测试的时候为何要加上model.eval()
May 23 #Python
You might like
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
复习Python中的字符串知识点
2015/04/14 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
使用python生成目录树
2018/03/29 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
师范应届毕业生自荐信
2013/11/18 职场文书
婚纱店策划方案
2014/05/22 职场文书
公司股东出资证明书
2014/11/01 职场文书
音乐课外活动总结
2015/05/09 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
python三子棋游戏
2022/05/04 Python