说说Python 中的文件操作 和 目录操作
我们知道,文件名、目录名和链接名都是用一个字符串作为其标识符的,但是给我们一个标识符,我们该如何确定它所指的到底是常规文件文件名、目录名还是链接名呢?这时,我们可以使用os.path模块提供的isfile函数、isdir函数和islink函数来达成我们的目标,如下所示:
print myfile, ’是一个’,
if os.path.isfile(myfile):
print ’plain file’
if os.path.isdir(myfile):
print ’directory’
if os.path.islink(myfile):
print ’link’
您还可以查找文件的日期及其大小:
time_of_last_access = os.path.getatime(myfile)
time_of_last_modification = os.path.getmtime(myfile)
size = os.path.getsize(myfile)
这里的时间以秒为单位,并且从1970年1月1日开始算起。为了获取以天为单位的最后访问日期,可以使用下列代码:
import time # time.time()返回当前时间
age_in_days = (time.time()-time_of_last_access)/(60*60*24)
为了获取文件的详细信息,可以使用os.stat函数和stat模块中的其它实用程序来达到目的,如下:
import stat
myfile_stat = os.stat(myfile)
size = myfile_stat[stat.ST_SIZE]
mode = myfile_stat[stat.ST_MODE]
if stat.S_ISREG(mode):
print ’%(myfile)是一个常规文件,大小为 %(size)d 字节’ %\
vars()
有关stat模块的详细信息,请参见Python Library Reference。若想测试一个文件的读、写以及执行权限,可以用os.access函数,具体如下所示:
if os.access(myfile, os.W_OK):
print myfile, ’具有写权限’
if os.access(myfile, os.R_OK | os.W_OK | os.X_OK):
print myfile, ’具有读、写以及执行权限’
http://tech.it168.com/a2009/0708/602/000000602694_1.shtml
在很多应用中,文件操作是一个基本的功能,也是很重要的一部分.相对于其他语言来说,python对文件操作非常简单
读和写:
从文本中读取数据和把数据写进文本是文本的基本操作.这个非常简单.我们打开一个文本准备写数据:
fp = open ( "test.txt", "w" )
"w"表明我们将要把数据写到文本中.剩下的就比较容易理解.下一步实把数据写进文本中:
fp.write ( ' This is a test. \nReady, it is. ' )
这就把字符串"This is a test."写进文本的第一行,"Really , it is."写到了第二行.最后,我们需要清理和关闭文本.
fp.close( )
正如你所看到的,这个很容易,特别是对python的对象.但要清楚,当你使用"w"模式去再次写数据到文本中的时候,文本中的所有内容都会背删除掉.为了解决这个问题,可以使用"a"模式去把数据追加到文本末尾,添加数据到末尾:
fp = open ( ' test.txt ', ' a ' )
fp.write ( ' \n\n\nBottom line. ' )
fp.close ( )
现在我们把文本的数据读出来并显示:
fp = open ( ' test.txt ' )
print fp.read ( )
fp.close( )
这把文本中数据全部读取出来并显示出来.我们也可以读取文本中的一行数据:
fp = open ( ' test.txt ' )
print fp.readline ( ) # " This is a test . "
同样也可以把文本中的所有行存储到一个list中:
fp = open ( ' test.txt ' )
fileList = fp.readlines( )
for fileline in fileList :
print '>>', fileline
fp.close( )
当在从文本中读取数据时,Python会记住指针在文本中的位置,如下例子:
fp = open ( ' test.txt ' )
garbage = fp.readline( )
fp.readline ( ) # "Really, it is. "
fp.close ( )
只有第二行显示出来.当然,我们也可以通过把指针定位到其他地方来读取数据.
fp = open ( 'test.txt' )
garbage = fp.readline ( )
fp .seek ( 0 )
print fp.readline ( ) # " This is a test . "
fp.close ( )
由上面的例子可以知道,我们可以告诉python继续从文本的第一个字节开始读取数据. 因此,第一行数据被打印出来. 我们同样可以要求python告诉指针当前位置:
fp = open ( ' test.txt ' )
print fp.readlien ( ) # " This is a test "
print fp .tell ( 0 ) # " 17 "
print fp.readline( ) # " Really , it is "
同样,一次也可以读取指定字节数的数据:
fp = open ( ' test.txt ' )
print fp ( 1 ) # " T "
fp.seek ( 4 )
print fp.read ( 1 ) # " T "
当我们在Windows 和 Macintosh平台时,有时候可以需要以二进制的模式来写数据,比如图片文件.为了做到这点,只要以"b"模式打开文本:
fp = open ( ' testBinary.txt ', ' wb ' )
fp.write ( ' There is no spoon. ' )
fp.close ( )
fp = open ( ' testBinary.txt ' , ' rb ' )
print fp.read ( )
fp .close ( )
说说Python 中的文件操作 和 目录操作的更多相关文章
- Python中对 文件 的各种骚操作
Python中对 文件 的各种骚操作 python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getc ...
- Python中的文件和目录操作实现
Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...
- 关于Python中的文件操作(转)
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- python中对文件、文件夹,目录的基本操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目 ...
- [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明
转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...
- python中对文件、文件夹的操作
python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt") 创建空文件 2) open(&qu ...
- 【Python】解析Python中的文件操作
目录结构: contents structure [-] 简介 Python中的文件类型 内置函数的文件操作 open()函数 Mode 创建文本文件 读取文本文件 循环文件对象 关闭文件 With语 ...
- python中 对文件的读写操作 以及如何边写入 边保存flush()
转自:https://blog.csdn.net/t8116189520/article/details/78854708 首先 python中打开文件大致常用的几类如下: 1.写入文件write # ...
- python学习之【第十一篇】:Python中的文件操作
1.前言 在Python中,对文件的操作主要遵循以下流程: 打开文件,得到文件句柄并赋值给一个变量 通过文件句柄对文件进行操作 关闭文件 2.打开文件 使用open函数,可以打开一个已经存在的文件,或 ...
- linux命令(28):Linux下SCP无需输入密码传输文件,python 中scp文件
python 中scp文件:(如果下面的发送免密码已经完成的话,就直接能用下面这个) os.system('scp "%s" "%s:%s"' % (" ...
随机推荐
- 【推荐】HTML5 UI框架 推荐
笔者的男装网店:http://shop101289731.taobao.com .冬装,在寒冷的冬季温暖你.新品上市,环境选购 最近自己瞎搞一下web网页的东西.想开发先找资源. 整理了一下HTML5 ...
- 如何设置 Windows 开机启动项
点击[开始]-[运行](或者使用快捷键-Win + R),输入 msconfig
- tune 06 Database Configuration and I/O Issues
1. 尽量读内存中的数据 2. 尽量减少IO矛盾, 即多个任务同时读写一块磁盘 表和索引要尽量分开在不同磁盘, 因为表和它的索引是同时读取的, 所以分磁盘后, 对性能会提高. 物理磁盘的调优相关 re ...
- 【转载】Javascript中的this关键字
看了这篇文章 http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html 分情况讨论. 情况一:纯粹的函数 ...
- Toast报错 android.content.res.Resources$NotFoundException
Toast.makeText(getActivity(), String.valueOf(position), Toast.LENGTH_SHORT) ...
- android之Itent.ACTION_PICK Intent.ACTION_GET_CONTENT妙用
你是不是很多时候,想从弹出的电话本姓名列表中中查找到某个人,然后再获取该人的详细信息呢? 你是不是想选择从弹出的列表中选择一张图片,然后将其进行进一步的操作呢? 如果,你想,那你是不是很像知道,我们应 ...
- maven-source 1.3 中不支持注释请使用 -source 5 或更高版本以启用注释
解决办法:在pom里 加上以下代码 <build> <plugins> <plugin> <groupId>org.apache.maven.plugi ...
- 51nod1119 机器人走方格 V2
终于学到了求组合数的正确姿势 //C(n+m-2,m-1) #include<cstdio> #include<cstring> #include<cctype> ...
- Replication in Kafka
Replication简介 Kafka中的Replication功能是为了给每个partition提供备份,当某个Broker挂掉时可以迅速实现故障切换(failover).我们可以在创建或修改top ...
- 连接mongo的服务提示:HTTP Status 500 - com.mongodb.MongoException$Network: can't call something
连接mongo的服务提示以下错误 原因:达到了mongodb启动时预设的最大连接数,无法创建新的连接 HTTP Status 500 - com.mongodb.MongoException$Netw ...