1、在Windows上,使用倒斜杆作为文件夹之间的分隔符,在Linux上,使用正斜杠作为路径分隔符。在编写Python脚本时,可以os.path.join()函数来处理

在Windows环境下命令如下,返回的路径为倒斜杆,倒斜杆有两个,是因为加了转义字符

>>>
>>> import os
>>> os.path.join('usr','bin','pigwan7')
'usr\\bin\\pigwan7'
>>>

在Linux环境下命令,返回的路径为正斜杠

>>>
>>> import os
>>> os.path.join('usr','bin','pigwan7')
'usr/bin/pigwan7'
>>>

2、获得当前路径和改变工作路径

>>>
>>> import os
>>> os.chdir('/usr/bin')
>>> os.getcwd()
'/usr/bin'
>>> os.chdir('/root')
>>> os.getcwd()
'/root'
>>>

3、创建新文件夹

>>>
>>> os.makedirs('/home/xiaobai/study')
>>> os.chdir('/home/xiaobai/study')
>>> os.getcwd()
'/home/xiaobai/study'
>>>

4、相对路径和绝对路径

os.path.abspath(path)返回参数的绝对路径的字符串,os.path.isabs(path),返回一个布尔值,判断是否是相对路径

>>>
>>> os.path.abspath('.')
'/home/xiaobai/study'
>>> os.path.isabs('.')
False
>>>

os.path.dirname(path)返回一个字符串,包含path参数中最后一个斜杠之前的所有内容;os.path.basename(path)将返回path参数中最后一个斜杠之后的所有内容

>>>
>>> os.path.dirname('/home/xiaobai/study/test.txt')
'/home/xiaobai/study'
>>> os.path.basename('/home/xiaobai/study/test.txt')
'test.txt'
>>>

os.path.split()返回两个字符串的元组,包含路径的目录名称和基本名称

>>>
>>> os.path.split('/home/xiaobai/study/test.txt')
('/home/xiaobai/study', 'test.txt')
>>>

查看文件大小和文件夹内容

os.path.getsize(path)返回path参数中文件的字节数,下面这个例子中的文件大小为51200字节

>>>
>>> os.path.getsize('/home/xiaobai/study/test.txt')
51200
>>>

os.listdir(path)返回path参数中文件名的字符串列表,/home/xiaobai/study目录下共有3个文件

[root@client01 study]#
[root@client01 study]# pwd
/home/xiaobai/study
[root@client01 study]# ll
total 156
-rw-r--r--. 1 root root 51200 Nov 17 01:28 test1.txt
-rw-r--r--. 1 root root 51200 Nov 17 01:28 test2.txt
-rw-r--r--. 1 root root 51200 Nov 17 01:24 test.txt
[root@client01 study]#

>>>
>>> os.listdir('/home/xiaobai/study/')
['test.txt', 'test1.txt', 'test2.txt']
>>>

利用os.path.getsize(path)和os.listdir()可以计算文件夹下所有文件的大小

>>>
>>> totalSize=0
>>> for filename in os.listdir('/home/xiaobai/study/'):
... totalSize=totalSize + os.path.getsize(os.path.join('/home/xiaobai/study/',filename))
...
>>> print(totalSize)
153600
>>>

5、检测路径有效性

>>>
>>> os.path.exists('/home/xiaobai')
True
>>> os.path.isdir('/home/xiaobai')
True
>>> os.path.isfile('/home/xiaobai')
False
>>>

Python 文件读写 文件和路径的更多相关文章

  1. Python 3 读写文件的简单方法!

    Python 3 读写文件的简单方法! a = open('test.txt','w') 这行代码创建了一个名为test的文本文档,模式是写入(模式分为三种,w代表写入,r代表阅读,a代表在尾行添加) ...

  2. Python:读写文件(I/O) | 组织文件

    1. I/O 概述  程序与用户交互涉及到程序的输入输出(I/O) 一种类型是字符串,通过input() 和 print() 函数以及数据类型转换类函数如(int()),实现数据的输入输出. 另一种类 ...

  3. python查找读写文件

    import os ''' 跟据文件名称,后缀查找指定文件 path:传入的路径 filename:要查找的文件名 suffix:要查找的文件后缀 return :返回查找的文件路径 ''' file ...

  4. 笨方法学python之读写文件、open函数的用法

    一.python读写文件相关知识点 close:关闭文件 read:读取文件的内容//你可以把结果赋给一个变量 readline:只读取文件中的一行 truncate 美 /trʌŋ'ket/ :清空 ...

  5. python文件读写 文件修改

    #设置一个变量f为文件对象,并打开文件#写文件#f = open('user.txt','w',encoding='utf-8') #f是一个文件对象f=open(r'c:\Users\PL\Desk ...

  6. Python中读写文件三部曲

    写入文件:要把第二个参数 'r' 改成 'w' ,表示write,即以写入的模式打开文件;  往文件中写入内容,使用write()函数. 例子如下:注意 'w' 写入模式会暴力清空掉原有文件,然后再写 ...

  7. Python文件读写 - 文件r+ a+ open读写实际表现[示例]

    先说结论: 文件r+ open: 1. write()不能实现插入写,它总是覆盖写或附加写: 2. 如果文件一打开即write(),则从开头覆盖写; 3. 如果文件一打开,用f.seek()指定文件指 ...

  8. python之读写文件

    1. 读取文件数据,文件必须存在才可以读且如要读取的文件不和当前.py在同一个包下,需要特别指定此文件路径才行 f=open('test.txt',encoding='utf-8')#填写文件路径,打 ...

  9. python 多进程读写文件

    import time from multiprocessing import Process, JoinableQueue, cpu_count import csv ####处理一条数据的方法 d ...

随机推荐

  1. MS Chart 条状图【转】

    private void Form1_Load(object sender, EventArgs e) {            string sql1 = "select  类别,coun ...

  2. Rematch Redux的替代品

    前言:Rematch和vuex很像. 文档:https://github.com/yurizhang/rematch 简介: 先看看rematch的官方介绍: Rematch是没有boilerplat ...

  3. 基于HttpClient的新版正方教务系统模拟登录及信息获取API

    简介 通过HttpClient获取网页数据源,通过Jsoup解析数据.先模拟登录,再获取信息.模拟浏览器正常操作,封装请求头信息获取SESSIONID.模拟登录成功后切勿断开会话,依赖登录请求得到的C ...

  4. 《大话设计模式》num01---简单工厂模式

    2017年12月10日 20:13:57 独行侠的守望 阅读数:128更多个人分类: 设计模式编辑版权声明:本文为博主原创文章,转载请注明文章链接. https://blog.csdn.net/xia ...

  5. agc016C - +/- Rectangle(构造 智商题)

    题意 题目链接 Sol 我的思路:直接按样例一的方法构造,若$h \times w$完全被$N \times M$包含显然无解 emm,wa了一发之后发现有反例:1 4 1 3 我的会输出[1 1 - ...

  6. Miner3D Professional专业版

    ——高级的可视化数据分析为专业人士量身打造 Miner3D Professional 专业版可以帮助工程师,研究人员,分析师,管理人员,知识工作者,以分析师和信息专家,在较短的时间内作出更好的判断.探 ...

  7. MongoDB-2.6.0 (OpenLogic CentOS7.2)

    平台: CentOS 类型: 虚拟机镜像 软件包: mongodb basic software database linux open source 服务优惠价: 按服务商许可协议 云服务器费用:查 ...

  8. java Vamei快速教程04 封装和接口

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型.对 ...

  9. <已解决>使用selector设置Button按下松开的样式以及 <item> tag requires a 'drawable' attribute or child tag defining a drawable 报错

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="ht ...

  10. Windows底层开发前期学习准备工作

    1.若对Windows底层开发没有兴趣,不建议继续深究, 若有些兴趣可以继续. 2. 先广泛打基础,比如C/ASM/C++/MFC,再学习Windows核心编程,对R3上的一些开发有所熟悉,再系统的学 ...