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实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
python轻松实现代码编码格式转换
Mar 26 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
Django学习教程之静态文件的调用详解
May 08 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Pycharm IDE的安装和使用教程详解
Apr 30 Python
Python3中对json格式数据的分析处理
Jan 28 Python
理解深度学习之深度学习简介
Apr 14 Python
pandas DataFrame.shift()函数的具体使用
May 24 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
PHP版 汉字转码的实现详解
2013/06/09 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
EasyUI 结合JS导出Excel文件的实现方法
2016/11/10 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
python追加元素到列表的方法
2015/07/28 Python
Python获取当前路径实现代码
2017/05/08 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
python实现根据文件格式分类
2019/10/31 Python
python 如何调用远程接口
2020/09/11 Python
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
幼儿园中班下学期评语
2014/04/18 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
公路绿化方案
2014/05/12 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
大学毕业生自我评价
2015/03/02 职场文书
公司市场部岗位职责
2015/04/15 职场文书
高中班主任心得体会
2016/01/07 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技