python 文件file操作(2)

简介: 文件的属性所谓属性,就是能够通过一个文件对象得到的东西。>>> f = open("m1.txt","a")>>> f.name'm1.txt'>>> f.

文件的属性

所谓属性,就是能够通过一个文件对象得到的东西。

>>> f = open("m1.txt","a")
>>> f.name
'm1.txt'
>>> f.mode      #显示当前文件打开的模式
'a'
>>> f.closed    #文件是否关闭,如果关闭,返回True;如果打开,返回False
False
>>> f.close()   #关闭文件的内置函数
>>> f.closed
True

文件的有关状态

>>> import os
>>> file_stat = os.stat("m1.txt")      #查看这个文件的状态
>>> file_stat                           #文件状态是这样的。从下面的内容,有不少从英文单词中可以猜测出来。
posix.stat_result(st_mode=33204, st_ino=5772566L, st_dev=2049L, st_nlink=1, st_uid=1000, st_gid=1000, st_size=69L, st_atime=1407897031, st_mtime=1407734600, st_ctime=1407734600)

>>> file_stat.st_ctime                  #这个是文件创建时间
1407734600.0882277                      #换一种方式查看这个时间
>>> import time
>>> time.localtime(file_stat.st_ctime)  #这回看清楚了。
time.struct_time(tm_year=2014, tm_mon=8, tm_mday=11, tm_hour=13, tm_min=23, tm_sec=20, tm_wday=0, tm_yday=223, tm_isdst=0)

以上关于文件状态和文件属性的内容,在对文件的某些方面进行判断和操作的时候或许会用到。特别是文件属性。比如在操作文件的时候,我们经常要首先判断这个文件是否已经关闭或者打开,就需要用到file.closed这个属性来判断了。

文件的内置函数

>>> dir(file)
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']
>>>

实验:

>>> f = open("m1.txt","r")
>>> f.read()
'My name is hiekay.\nMy website is hiekay.github.io\nAha,I like program\n'
>>>

file.read()能够将文件中的内容全部读取过来。特别注意,这是返回一个字符串,而且是将文件中的内容全部读到内存中。试想,如果内容太多是不是就有点惨了呢?的确是,千万不要去读大个的文件。

>>> contant = f.read()
>>> type(contant)
<type 'str'>

如果文件比较大了,就不要一次都读过来,可以转而一行一行地,用readline

>>> f = open("m1.txt","r")
>>> f.readline()        #每次返回一行,然后指针向下移动
'My name is hiekay.\n'
>>> f.readline()        #再读,再返回一行
'My website is hiekay.github.io\n'
>>> f.readline()
'Aha,I like program\n'
>>> f.readline()        #已经到最后一行了,再读,不报错,返回空
''

读多行,readlines()

>>> f = open("m1.txt","r")
>>> cont = f.readlines()
>>> cont
['My name is hiekay.\n', 'My website is hiekay.github.io\n', 'Aha,I like program\n']
>>> type(cont)
<type 'list'>
>>> for line in cont:
...     print line
...
My name is hiekay.

My website is hiekay.github.io

Aha,I like program

从实验中我们可以看到,readlines和read有一样之处,都是将文件内容一次性读出来,存放在内存,但是两者也有区别,read返回的是str类型,readlines返回的是list,而且一行一个元素,因此,就可以通过for逐行打印出来了。

在print line中,注意观察list里面的每个元素,最后都是一个\n结尾,所以打印的结果会有空行。

对付大点的文件,推荐这么做:

>>> f = open("m1.txt","r")
>>> f
<open file 'm1.txt', mode 'r' at 0xb757c230>
>>> type(f)
<type 'file'>
>>> for line in f:
...     print line
...
My name is hiekay.

My website is hiekay.github.io

Aha,I like program

以上都是读文件的内置函数和方法。除了读,就是要写。所谓写,就是将内容存入到文件中。用到的内置函数是write。但是,要写入文件,还要注意打开文件的模式,可以是w,也可以是a,看具体情况而定。

>>> f = open("m1.txt","a")     #因为这个文件已经存在,我又不想清空,用追加的模式
>>> f.write("There is a baby.") #这句话应该放到文件最后
>>> f.close()                   #请看官注意,写了之后,一定要及时关闭文件。才能代表真正写入

看看写的效果:

>>> f = open("m1.txt","r")
>>> for line in f.readlines():
...     print line
...
My name is hiekay.

My website is hiekay.github.io

Aha,I like program

There is a baby.        #果然增加了这一行

以上是关于文件的基本操作。高级 : pickle这个模块,是一个很好用的东西。

目录
相关文章
|
8月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1907 2
|
7月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1290 68
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
Python
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
608 69
|
10月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
10月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
9月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
300 0
|
11月前
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
259 4
|
11月前
|
人工智能 索引 Python
[oeasy]python094_使用python控制音符列表_midi_文件制作
本文介绍了如何使用Python控制音符列表制作MIDI文件。首先回顾了列表下标索引(正数和负数)的用法,接着通过`mido`库实现MIDI文件生成。以《两只老虎》为例,详细解析了代码逻辑:定义音高映射、构建旋律列表、创建MIDI文件框架,并将音符插入音轨。还探讨了音符时值与八度扩展的实现方法。最终生成的MIDI文件可通过不同平台播放或编辑。总结中提到,此技术可用于随机生成符合调性的旋律,同时引发对列表其他实际应用的思考。
414 5
|
10月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2515 0

推荐镜像

更多