在Python中对文件和目录进行操作

文件与目录操作是编程语言中非常重要的功能,Python也对其提供了相应的API支持,这篇博文就是具体介绍它们的使用方法。

一、文件打开和关闭操作

对文件进行操作在Python中分为3个步骤,首先要打开文件,然后是对文件进行读写操作,最后需要关闭文件。

1、打开文件使用的是open()函数,它提供初始化输入、输出(I/O)操作的通用接口,成功打开文件后返回一个文件对象,打开失败则引发一个错误。打开文件的语法如下:

file_object = open(file_name,access_mode [,buffering] )

file_name是要打开的文件名,可以是文件的绝对路径或相对路径。绝对路径是文件在硬盘上真正存在的路径,如:c:\python\src是绝对路径。相对路径是相对于当前运行程序所在路径的目标文件位置,表示相对路径时,“.”表示当前位置;“..”表示当前位置的上一级。如“..\images”或“.\DB”是相对路径,使用相对路径的好处是,当程序迁移时,由于绝对路径与本地计算机关联紧密,程序运行可能会出错,所以通常使用相对路径。

access_mode表示文件打开的模式,常用的模式如下:

r表示的是对文件进行读取操作,w表示写入数据到文件中,a是追加数据到文件的末尾,b是标识文件为二进制文件,与rwa组合使用,如打开音视频等二进制文件需要使用b模式,不指定模式时默认是r模式。

buffering表示访问文件采用的缓冲方式。0表示不缓冲,1表示只缓冲1行,任何大于1的值表示按给定值作为缓冲大小,不提供该参数或给定负值表示使用系统默认缓冲机制。

(2)对文件进行读写等操作后需要关闭文件,目的是释放文件占用的资源,使用的是file.close()方法,file表示的是已打开的文件对象。如果不显式的关闭文件,Python的垃圾收集机制也会在文件对象的引用计数为0时自动关闭文件,但是可能会丢失输出缓冲区的数据。如果不及时关闭已经打开的文件,该文件的资源会被占用,将无法对该文件执行其他操作,如删除文件的操作。所以要养成良好的习惯,在完成文件操作后,要及时关闭文件,释放资源。

(3)打开和关闭文件的示例代码如下:

fp = open(‘e:/readme.txt‘,‘w‘)       #绝对路径写文件
fp.close()           #关闭文件

fp = open(‘./readme.txt‘,‘r‘)          #相对路径,读文件
fp.close()

第一个是使用绝对路径,“w”表示对文件进行读写操作,如果文件不存在则会创建一个空文件。第二个是使用相对路径,在当前Python文件的目录下查找,“r”表示读取,如果找不到则会出错,找到则会读取文件。

(4)常用的文件对象内建方法

文件对象的操作方法有很对,常用的方法总结如下:

(5)目录操作

1)可以使用getcwd()函数获取当前路径。

#代码如下:
import os
print os.getcwd()
#执行结果如下:
C:\Users\Administrator\Desktop          #因为我Python的程序在桌面,所以显示的是这个路径

2)使用listdir(path)可以获得目录下面的所有文件的目录列表。

#代码如下:
import os
print os.listdir(os.getcwd())
#执行结果如下:
[‘aa.py‘, ‘APP‘, ‘desktop.ini‘, ‘files‘]

3)创建新的目录可以使用mkdir(path)函数。

#代码如下:
import os
print os.mkdir(‘test‘)
#执行结果就是在当前路径下新建了一个目录,也可以指定全路径进行创建

删除目录时,只要将mkdir换成rmdir即可。

4)判断目录是否存在使用path.isdir(path)。

#代码如下
import os
print os.path.isdir(‘test‘)
#执行后,如果目录存在,则返回True,若不存在,则返回False。

判断是否是文件可以使用path.isfile(path)。

#代码如下
import os
print os.path.isfile(‘test‘)

———————— 本文至此结束,感谢阅读 ————————

原文地址:https://blog.51cto.com/14154700/2440347

时间: 2024-08-25 13:24:09

在Python中对文件和目录进行操作的相关文章

Python中的文件和目录操作实现代码

对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这些函数无论是在Unix.Windows还是Macintosh平台上,它们的使用方式是完全一致的. 本文将详细解释这些函数的使用方法.首先,我们介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文件名对应的是一个标准文件.目录还是链接,以及提取文件大小和日期的方法.之后,我们还将介绍如何删除文

python—— 文件的打开模式和文件对象方法 & os、os.path 模块中关于文件、目录常用的函数使用方法

引用自"鱼c工作室"     文件的打开模式和文件对象方法  : https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&extra=page%3D1%26filter%3Dtypeid%26typeid%3D403 os.os.path 模块中关于文件.目录常用的函数使用方法: https://fishc.com.cn/forum.php?mod=viewthread&tid=45512&extr

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

创建文件:1) os.mknod("test.txt") 创建空文件2) open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件 创建目录:os.mkdir("file") 创建目录 创建多层新目录:def mkdirs(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip("\\") # 判断路径是否存在 # 存在 True #

python 文件与目录的操作   未完善 需要重新学习

文件与目录的操作:    -文件读写:python进行文件读写的函数是open或file file_handler = open(filename,mode) mode, 模式 说明 r 只读 r+ 读写 w 写入,先删除原文件,在重新写入,如果文件没有则 创建 w+ 读写,先删除原文件,在重新写入,如果文件没有则创建(可以写入输出) 读范例: >>> fo  = open('/tools/123/test.log')                                   

【Python】解析Python中的文件操作

目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语句 os模块 fileinput模块 1.简介 在Python中无需引入额外的模块来进行文件操作,Python拥有内置的文件操作函数(除了内置文件操作函数,Python语言也提供了额外的文件操作模块,它们具有更加强大的功能). os模块提供了在操作系统上可移植的文件操作方法.如果只是想要读取和写入数

Java学习-040-级联删除目录中的文件、目录

之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录.此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈.....若发现有错误,也请告知,我会去修改订正,非常感谢! 闲话少述,直接上码了! 1 /** 2 * Aaron.ffp Inc. 3 * Copyright (

python中关于文件的操作

今天让我们来一起学习一下python中关于文件的操作吧: 先看看以下如果打开文件: #open()打开文件的方法:r参数只能以读的方式打开文件,不能写 =(,,=)data=.read()(data)

shell中判断文件或目录是否存在

可以通过man test来查看文档,下面的文章转自http://m.blog.csdn.net/blog/yuanjungogogo/9222875 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限 if [ ! -x "$myPath"]; then mkdir "$myPa

解决 python 中读写文件的终极方案 UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 1270: illega

UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 1270: illegal multibyte sequence 上面是遇到的错误,本来想完成读文件,再写入另一文件的.但是在 fp.read() 时,一直遇到上面的错误,经过各种百度,google, 还有神奇的 stackoverflow 才知道是字符流的问题. 知道问题所在,还是没有解决,又苦苦搜索,终于在 stackoverflow 上找到灵感,可以把 op