python处理文件夹_python文件及文件夹操作

1.open()各模式详情

'r'        以只读模式打开,没有write()方法,默认打开方式

'w'       以只写模式打开,文件不存在时会自动创建文件,文件已存在时会清除文件内容并重建文件。这种模式打开的文件没有read()方法。

'a'        以追加模式打开,有write()方法,文件不存在时会自动创建文件,写入时只能写到文件末尾,打开的文件没有read()方法

'r+' 'w+' 'a+'是读写模式,其他类似'r' 'w' 'a'

2. 常见文件操作函数/方法

txt.read([size])      #size为读取的长度,以byte为单位;若省略,默认全部读取

txt.readline([size])     #读取一行。如果定义了size,则size表示读取内容的总长度;size大小超过该行长度,读取一行

txt.readlines([size])    #把文件每一行作为一个list的一个成员,并返回这个list。如果提供size,则size表示读取内容的总长度,可能只读取文件的一部分。

txt.write("Something you want to type in.")    #把一个字符串写到文件中。字符串不会自动加换行符

txt.close()    #关闭文件,文件使用完毕后要记得及时关闭

txt.tell()    #返回文件操作标记的当前位置,以文件开头为原点

txt.next()    #返回下一行,并将文件操作标记移至下一行

txt.seek(offset[,whence])    #将文件操作标记移到offset处。未提供whence参数时,offset一般相对于文件开头来计算,为正数。如果提供了whence参数的话,whence为0则从头开始计算;whence为1表示以当前位置为原点开始计算;whence为2表示以文件末尾为原点开始计算

3.文件和文件夹操作

Python中对文件、文件夹的操作需涉及到os模块和shutil模块

(1)删除一个文件:os.remove("file")

os.remove("test.txt")        #删除当前目录下test.txt文件

(2)重命名:os.rename(old,new),文件或目录均使用此命令

os.rename(r'e:\pythoncoding\test\test.txt',r'e:\pythoncoding\test\test1.txt')        #将e:\pythoncoding\test\test.txt文件重命名为test1.txt

os.rename(r'e:\pythoncoding\test',r'e:\pythoncoding\test1')      #将test文件夹重命名为test1

(3)返回指定目录下的所有文件和目录名:os.listdir()

for i in os.listdir(os.getcwd()):

print i                # 打印出当前工作目录所有文件和文件夹名

(4)得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

(5)创建多级目录:os.makedirs(r"c:\python\test")

创建单个目录:os.mkdir("test")

os.makedirs(r"e:\test\test")        #创建test文件夹,若其父目录不存在则自动创建

os.mkdir(r"e:\test\test")       #创建test文件夹,若其父目录不存在则抛出异常

(6)删除目录: os.rmdir()

删除多级目录:os.removedirs(r"c:\test\test")

os.removedirs(r"c:\test\test")

#删除目录及父目录。先删除C:\test\test目录,然后删除C:\test和c:目录。如果有非空子目录不能删除,会抛出异常

(7)①去掉目录路径,返回文件名:os.path.basename()

0955e3c7124e38bf8b011b9d2b2013a5.png

②去掉文件名,返回目录:os.path.dirname()

93581a2f2ccf333dd086944d5b4f5e14.png

③os.path.join():将路径名和文件名组合起来

359617a8214ecdb79c968288b87cb0df.png

④os.path.split():返回目录路径和文件名组成的元组

dbe0b70906da88d5cf83d0222ee5db85.png

⑤os.path.splitdrive():返回驱动器目录和剩余的路径名组成的元组

a239d3201da3a4311432abe1766a1dde.png

⑥os.path.splitext():返回文件名和文件扩展名组成的元组

d42bd8da9e8b707e43104ca6bdce7308.png

(8)获得信息相关函数

os.path.getatime():返回最近访问时间

os.path.getctime():返回文件创建时间

os.path.getmtime():返回文件最近修改时间

os.path.getsize():返回文件大小(字节单位)

d8c92b81d098d8223fb8a5f28770d637.png

(9)逻辑判断相关函数

os.path.exists():判断文件或目录是否存在,存在返回True,否则返回False

os.path.isabs():判断路径是否为绝对路径,是则返回为True,否则返回False

os.path.isdir():判断指定路径是否存在且为目录,若是则返回True,否则返回False

os.path.isfile():判断指定路径是否存在且为文件,若是则返回True,否则返回False

os.path.islink():判断指定路径是否存在且为一个符号链接,若是则返回True,否则返回False

os.path.ismount():判断指定路径是否存在且为一个挂载点,若是则返回True,否则返回False

394654573144c3c3abd40fa4843a0c47.png

(10)指示你正在使用的平台:os.name   对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'

>>> os.name

'nt'

(11)复制文件:

①shutil.copyfile("oldfile","newfile"):两个参数都只能是文件,相当于把oldfile复制到newfile

>>> import shutil

>>> shutil.copyfile(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

②shutil.copy("oldfile","newfile"):oldfile只能是文件,newfile可以是文件,也可以是目标目录。newfile为文件时,和copyfile()作用相同;为目录时,则把oldfile复制到新目录

>>> shutil.copy(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

>>> shutil.copy(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test")

(12)复制文件夹:

shutil.copytree("olddir","newdir"):olddir和newdir都只能是目录,且newdir必须不存在。此命令把olddir中的文件全部复制到newdir中。

>>> shutil.copytree(r"E:\Code\CPP\test1",r"E:\Code\CPP\test2")

(13)移动文件(目录)

shutil.move("oldpos","newpos"):移动文件或目录。第一个参数可以为文件或目录。第一个参数为目录时,第二个参数必须为目录;第一个参数为文件时,第二个参数为目录、文件均可。

>>> # 两个参数均为文件,将文件1的内容剪切到文件2,然后删除文件1

...

>>> shutil.move(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test2.txt")

>>>

>>> # 第一个参数为文件,第二个参数为目录,则将文件1剪切到目录2

...

>>> shutil.move(r"E:\Code\CPP\test1.txt",r"E:\Code\CPP\test1")

>>>

>>> # 两个参数均为目录,则将第一个目录的所有文件剪切到第二个目录,并删除目录1

...

>>> shutil.move(r"E:\Code\CPP\test1",r"E:\Code\CPP\test2")

shutil.rmtree("dir"):删除目录,空目录、非空目录均可删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/557915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

svn中项目管理中ec_Mac中使用svn进行项目管理

Mac中使用svn进行项目管理,借鉴了http://blog.csdn.net/q199109106q/article/details/8655204以下方案多人亲测可用转载请注明出处:http://blog.csdn.net/yc7369在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。在Mac环境下,由于Mac自…

10067mysql_MYSQL数据库mysql Non-Transactional Database Only(只支持MyISAM)

《MYSQL数据库mysql Non-Transactional Database Only(只支持MyISAM)》要点:本文介绍了MYSQL数据库mysql Non-Transactional Database Only(只支持MyISAM),希望对您有用。如果有疑问,可以联系我们。MYSQL入门后来在做WordPress,一开始还不知道…

java类的定义的实例_《Java基础知识》Java类的定义及其实例化

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。下面通过一个简单的例子来理解Java中类的定义:public classDog {String name;intage;void bark()//汪汪叫{System.out.println("汪汪,不要过来");}voidhungry(){System.out.println(&q…

excel mysql插件_智分析Excel插件

智分析Excel插件官方版是一款好用的自助分析云平台,智分析Excel插件官方版是一款面向业务用户的EXCEL插件工具,智分析Excel插件官方版支持各类云端数据库、本地excel数据导入功能,软件能够将本地数据和线上数据结合起来分析。软件可以帮助办公…

【计算机网络】——习题解析:一个UDP用户数据的数据字段为8192字节,在数据链路层要使用以太网来传输,试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值

【计算机网络】——习题解析:一个UDP用户数据的数据字段为8192字节,在数据链路层要使用以太网来传输,试问应当划分为几个IP数据报片?说明每一个IP数据报字段长度和片偏移字段的值 答:6个数据字段的长度:前5…

网络协议,各层功能,各层协议

一、OSI七层模型 OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数…

fastdfs java token_fastdfs-client-java操作fastdfs

一、在https://github.com/happyfish100/fastdfs-client-java 下载客户端,解压后并执行ant命令,在E:\tools\libs\fastdfs\fastdfs-client-Java-master\src\build下会生成fastdfs_client.jar如图示二、mvn安装fastdfs_client.jar,在cmd中执行命…

idea编辑器中使用@Data注解无效解决办法

使用Data注解可以减少了以前的get和set等方法,但是在idea编辑器中不认识会在使用实体类元素时候找不到(但是运行不会报错) 所以可以添加插件

@Mapper和@Repository的区别

Mapper和Repository的区别 1.相同点 Mapper和Repository都是作用在dao层接口,使得其生成代理对象bean,交给spring 容器管理 对于mybatis来说,都可以不用写mapper.xml文件 2.不同点 Mapper不需要配置扫描地址,可以单独使用&#x…

git本地库(操作具体命令)

在任何盘符下创建本地仓库repository(除git目录下) 在项目目录创建新的本地仓库,并把项目里的所有文件全部添加、提交到本地仓库中去: $ git init #在当前的目录下创建一个新的空的本地仓库 Initialized empty Git repository…

idea右键项目没有git 【解决方法】

右键项目,没有git选项 解决方法: 进入settings,然后搜索version,按下图点击即可: over,解决:

用java设计秒表_运用Java编写 秒表程序

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SecondJFrame extends JFrame implements ActionListener,FocusListener{ //响应单击、焦点事件private JTextField text;private JB…

GIT commit问题 No errors and 30 warnings found. Would you like to review them?

GIT commit问题 No errors and 30 warnings found. Would you like to review them?

java spring 条件注解_【Spring】Spring高级话题-条件注解-@Condition

进行本示例的演示,需要先配置好Maven和Spring哦、见:【Spring】基于IntelliJ IDEA搭建Maven分析通过profile,我们可以获得不同的profile,我们可以获得不同的Bean。Spring4提供了一个更通用的基于条件的Bean的创建,即使用Condition…

解决springBoot 的templates中html引入css文件失败

我的情况是网页打开没有css效果 文件结构: 解决办法1:修改路径(springBoot已经默认静态资源在static文件夹)只需href“css/你的.css” 解决办法2:增加配置文件 解决办法3:使用 templates语法引入

java并发 cpu高_java高并发核心要点|系列5|CPU内存伪共享

上节提到的:伪共享,今天我们来说说。那什么是伪共享呢?这得从CPU的缓存结构说起。以下如图,CPU一般来说是有三级缓存,1 级,2级,3级,越上面的,越靠近CPU的,速度…

springboot拦截了静态资源css,js,jpg,png等

SpringBoot中自己写的拦截器,居然把静态资源也拦截了,导致了页面加载失败 /****/ Configuration public class SpringMvcWebConfigSupport implements WebMvcConfigurer {/*** 默认访问的是首页** param registry*/Overridepublic void addViewControlle…

java 多态实现的jvm调用过程_多态:JVM是如何进行方法调用的

在我们平时的工作学习中写java代码时,如果我们在同一个类中定义了两个方法名和参数类型都相同的方法时,编译器会直接报错给我们。还有在代码运行的时候,如果子类定义了一个与父类完全相同的方法的时候,父类的方法就会被覆盖&#…

java 0l是多少_Java 构造器 - osc_0ltyoebk的个人空间 - OSCHINA - 中文开源技术交流社区...

Java 基础构造器构造器:构造对象.1.构造方法的名字必须和类名字保持一致.2.构造方法没有返回类型.(不是没有返回值!!!!!!!!!!!!!)3.构造方法可以定义参数,也可以不定义,参数默认的是无参构造.4.构造方法也遵守访问修饰符的限制,5.构造方法也支持方法的重载.6.会先执行方法.什么…

java 皮鞋_java反射

一、反射的概述反射机制允许java程序加载一个运行时才得知其名称的类,获悉其完整API信息,包括其修饰符、超类、实现的接口,也包括属性和方法的所有信息;二、反射的作用能够分析类能力的程序成为反射(reflective)。反射的功能极其强…