IO目录处理

在使用io常用函数之前,必须要在py文件头部import os。os是(Operation system)的缩写,意思就是系统操作。

1. 创建删除目录

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/29 15:27
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :class32.py
# @Software :PyCharm Community Edition
import os
'''
创建目录,而非创建文件
创建文件,参考open中的model,删除文件则用到os.remove
'''
# os.mkdir("../python_io/") # make directory 创建一个目录
# os.rmdir("../python_io") # remove directory 删除一个目录 file = open("../python_io/testio.txt", "w", encoding="UTF-8") # 创建文件不要加上不存在的目录,否则报错;目录存在则创建文件成功
file.close()
os.remove("../python_io/testio.txt")

我创建删除目录,文件都是成功的。筒子们自己试一下。

2. 寻找目录/文件路径

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/30 10:26
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :class33.py
# @Software :PyCharm Community Edition
import os
path=os.getcwd() #E:\python_workspace\StudyPython\os
print(path) path=os.path.dirname(__file__) #E:/python_workspace/StudyPython/os
print(path) path=os.path.realpath(__file__) # E:\python_workspace\StudyPython\os\class33.py
print(path) path=os.path.basename(__file__) # class33.py
print(path)

结果对比:

3. 目录路径的其他操作

3.1 文件路径拼接

os.path.join(a,b)   a:py文件的同级目录,b新建的文件目录。新建只能一级一级的新建。拼接路径的时候,不能跨过不存在的路径,直接去新建一层的目录。

 import os

 new_file = os.path.join("sub_001", "test")  # join(a,b)
print(new_file)
os.mkdir(new_file)

结果:

3.2 os.path.isdir / os.path.isfile  判断是否是目录,是否是文件

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/30 14:13
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :class34.py
# @Software :PyCharm Community Edition
import os
path = os.getcwd()
print(os.path.isdir(path)) file = os.getcwd()+"/class34.py"
print(os.path.isfile(file))

3.3  os.path.split() 目录分割

这个函数方法可以把切割路径,最后一层目录独立成为一个元素,返回结果是含有两个元素的元组。

参数说明:

  1. PATH指一个文件的全路径作为参数:
  2. 如果给出的是一个目录和文件名,则输出路径和文件名
  3. 如果给出的是一个目录名,则输出路径和为空文件名

实际上,该函数的分割并不智能,它仅仅是以 "PATH" 中最后一个 '/' 作为分隔符,分隔后,将索引为0的视为目录(路径),将索引为1的视为文件名,如:

>>> import os
>>> os.path.split('C:/soft/python/test.py')
('C:/soft/python', 'test.py')
>>> os.path.split('C:/soft/python/test')
('C:/soft/python', 'test')
>>> os.path.split('C:/soft/python/')
('C:/soft/python', '')

3.4 os.listdir() 列出目录下所有文件名

这个函数的作用是列出目录下所有的文件,返回结果是列表。

 import os
path = os.getcwd()
# path = os.path.realpath(__file__)
# print(os.path.split(path))
print(os.listdir(path))

结果如下:

python之IO目录处理的更多相关文章

  1. {python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块

    python之IO多路复用 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 ...

  2. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

  3. [Python_3] Python 函数 & IO

    0. 说明 Python 函数 & IO 笔记,基于 Python 3.6.2 参考  Python: read(), readline()和readlines()使用方法及性能比较  Pyt ...

  4. python异步IO编程(二)

    python异步IO编程(二) 目录 开门见山 Async IO设计模式 事件循环 asyncio 中的其他顶层函数 开门见山 下面我们用两个简单的例子来让你对异步IO有所了解 import asyn ...

  5. 老猿Python博文汇总目录--按标题排序

    ☞ ░ 前往老猿Python博文目录 ░ 本部分为老猿CSDN全部博文的汇总(含转载部分),所有文章在此未进行归类,仅按文章标题排序,方便关键字查找.本部分内容将至少以周为单位定期更新,可能不包含发布 ...

  6. 第9章 Python文件操作目录

    第9章 Python文件操作 第9.1节 Python的文件打开函数open简介 第9.2节 Python的文件打开函数open详解 第9.3节 Python的文件行读取:readline 第9.4节 ...

  7. Python异步IO --- 轻松管理10k+并发连接

    前言   异步操作在计算机软硬件体系中是一个普遍概念,根源在于参与协作的各实体处理速度上有明显差异.软件开发中遇到的多数情况是CPU与IO的速度不匹配,所以异步IO存在于各种编程框架中,客户端比如浏览 ...

  8. Python文件IO

    Python文件IO 有如下文本内容,文件路径为D:\temp,文件名称为lyric.txt, line1 Look ! line2 If U had one shot line3 One oppor ...

  9. python遍历一个目录,输出所有文件名

    python遍历一个目录,输出所有文件名 python os模块 os import os  def GetFileList(dir, fileList):  newDir = dir  if os. ...

随机推荐

  1. idea maven项目依赖项有红色波浪线

    在maven面板选中所有报错的maven项目,右键选择移除(remove),之后重新添加.

  2. c语言实践:求两个数的最大公约数

    我的思路是这样的:比如12和16这两个数.先理解一下概念,什么叫最大公约数.就是12有很多个因数,16也有很多个因数,这两堆因数中有一些重合的因数,在这些重合的因数中找到那个最大的.那么最大公约数一定 ...

  3. Python基础 之 变量、用户交互、if条件语句、while循环语句、编码、逻辑运算

    一.Python介绍 Python 崇尚优美.清晰.简单 Python是一门动态解释型的强制性定义的语言. 二.编译型和解释型的区别 编译型:一次性将所有与程序编译成二进制文件. 缺点:开发效率低,不 ...

  4. HttpSession解决表单的重复提交

    1). 重复提交的情况: ①. 在表单提交到一个 Servlet, 而 Servlet 又通过请求转发的方式响应一个 JSP(HTML) 页面, 此时地址栏还保留着 Serlvet 的那个路径, 在响 ...

  5. 2.8.3 并发下诡异的HashMap

    package 第二章.并发下诡异的HashMap; import org.junit.Test; import java.util.HashMap;import java.util.Map;impo ...

  6. [GO]map做函数参数

    package main import "fmt" func test(m map[int]string) { delete(m, ) } func main() { m := m ...

  7. mysql_init调用卡住原因分析

    有同学做类似如下的操作: class X { public: X() // 类X的构造函数ctor { _mysql_handler = mysql_init(NULL); } }; // 定义类X的 ...

  8. DataTable与结构不同实体类之间的转换

    在实际开发过程中,或者是第三方公司提供的数据表结构,与我们系统中的实体类字段不对应,遇到这样我们怎么处理呢?可能有人会说,在转换时创建一个实体对象,对表里的数据逐行遍历来实例化这个实体对象不就完了.的 ...

  9. 常用Linux命令:netstat

    一.netstat:显示各种网络相关信息 1.命令格式 netstat [参数] 2.常用参数 -a   :(all)显示所有选项,默认不现实LISTEN相关 -t    :(tcp)仅显示tcp相关 ...

  10. js作用域解析原理

    当代码进入到<script>标签或者在调用一个方法,那么就会进入作用域,在解析代码的时候就会做以下两件事情: ①去找var 和function关键字进行js预解析如果有var把值全部定义成 ...