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查询sqlite数据表的方法
May 08 Python
详解Django框架中用户的登录和退出的实现
Jul 23 Python
Python操作使用MySQL数据库的实例代码
May 25 Python
python基础练习之几个简单的游戏
Nov 10 Python
numpy排序与集合运算用法示例
Dec 15 Python
Python爬取商家联系电话以及各种数据的方法
Nov 10 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
Python实现数值积分方式
Nov 20 Python
基于Python 中函数的 收集参数 机制
Dec 21 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 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&amp;mysql(六)
2006/10/09 PHP
虚拟主机中对PHP的特殊设置
2006/10/09 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
php使用pear_smtp发送邮件
2016/04/15 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
深入分析PHP设计模式
2020/06/15 PHP
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
2015/12/12 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
python机器学习之神经网络(一)
2017/12/20 Python
python正则表达式之对号入座篇
2018/07/24 Python
Django 请求Request的具体使用方法
2019/11/11 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python 如何查找特定类型文件
2020/08/17 Python
python如何随机生成高强度密码
2020/08/19 Python
python中time、datetime模块的使用
2020/12/14 Python
椰子猫砂:CatSpot
2018/08/27 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
核心价值观演讲稿
2014/05/13 职场文书
工作所在部门证明
2014/09/21 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL