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. Access 将SQL查询结果强制转换为某种类型

    每个函数都可以强制将一个表达式转换成某种特定数据类型. 语法 CBool(expression) CByte(expression) CCur(expression) CDate(expression ...

  2. Practice encryptedblobstore

    C++ BlobStore 使用范例(C++伪代码) 一个可能的接口设计示例(C++) Java BlobStore 使用范例(Java伪代码) 一个可能的接口设计示例(Java) 一个基于Key/V ...

  3. java CountDownLatch 等待多线程完成

    CountDownLatch允许一个或多个线程等待其他线程完成操作. package com.test; import java.util.concurrent.CountDownLatch; pub ...

  4. 华为云kafka POC 踩坑记录

    2019/03/08 18:29 最近在进行华为云相关POC验证,个人主要负责华为云DMS kafka相关.大致数据流程是,从DIS取出数据,进行解析处理,然后放入kafka,再从kafka中取出数据 ...

  5. 学习笔记:MDN的Web入门

    HTML: 要引用一个父目录的文件,加上两个点. HTML并不是真正的编程语言,它是一种用于定义内容结构的标记语言. 元素(Element):开标签.闭标签与内容相结合,便是一个完整的元素.元素可以用 ...

  6. 一张图掌握移动Web前端所有技术(大前端、工程化、预编译、自动化)

    你要的移动web前端都在这里! 大前端方向:移动Web前端.Native客户端.Node.js. 大前端框架:React.Vue.js.Koa  跨终端技术:HTML 5.CSS 3.JavaScri ...

  7. Android ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法

    我的解决办法: 1 首先设置android:layout_width=”wrap_content”和android:layout_height=”wrap_content”,否则你按比例缩放后的图片放 ...

  8. java 千分位的添加和去除

    转至:http://blog.sina.com.cn/s/blog_8f99a1640102v1xh.html 将一个数字转换为有千分位的格式: NumberFormat numberFormat1  ...

  9. jqGrid中multiselect: true 操作checkbox

    在jqGrid中设置multiselect: true可以实现全选的操作,但怎么设置被选中的checkbox里面的值呢,做法如下:jQuery("#listTable").jqGr ...

  10. 转: ZigBee/Z-Stack CC2530实现低功耗运行的配置简介

    转: ZigBee/Z-Stack CC2530实现低功耗运行的配置简介http://bbs.elecfans.com/jishu_914377_1_1.html(出处: 中国电子技术论坛) 设备支持 ...