python3_05.文件操作那些事

文件操作的学习笔记。

>>> file = open(‘/tmp/test.txt‘,‘r‘)

>>> file.read()

‘root:x:0:0:root:/root:/bin/bash\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nadm:x:3:4:adm:/var/adm:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash\n‘

>>> file.close()  #文件使用完以后要关闭文件,因为文件会占用资源

>>> with open(‘/tmp/test.txt‘,‘r‘) as f:

...     print(f.read())

...    #with语句自动调用了close方法

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash



read() 一次性读取所有内容,文件过大,内存容易出问题

read(size) size指定每次最多读取的字节数,更安全

readline()  每次读取一行

如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便:

#f = open(‘/Users/michael/gbk.txt‘, ‘r‘, encoding=‘gbk‘, errors=‘ignore‘, newline=‘‘)

open可以传入一些参数:

encoding:指定编码

errors:处理错误的方式,最简单的是ignore忽略,但是这样用多了不太好。

newline=‘‘:Python可以识别所有的普通换行符并将其转换为单个 \n 字符。 类似的,在输出时会将换行符 \n 转换为系统默认的换行符。 如果你不希望这种默认的处理方式,可以给 open() 函数传入参数 newline=‘‘



>>> with open(‘/tmp/hello.txt‘,‘w‘) as f:

...     f.write(‘hello‘)              #文件写入

...     print(‘你好‘,file=f)   #print输入重定向到文件中

...

>>> file.read()

‘hello你好\n‘



#-- 文件基本操作

output = open(r‘C:\spam‘, ‘w‘)          # 打开输出文件,用于写

input = open(‘data‘, ‘r‘)               # 打开输入文件,用于读。打开的方式可以为‘w‘, ‘r‘, ‘a‘, ‘wb‘, ‘rb‘, ‘ab‘等

fp.read([size])                         # size为读取的长度,以byte为单位

fp.readline([size])                     # 读一行,如果定义了size,有可能返回的只是一行的一部分

fp.readlines([size])                    # 把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用readline()来实现的。如果提供size参数,size是表示读取内容的总长。

fp.readable()                           # 是否可读

fp.write(str)                           # 把str写到文件中,write()并不会在str后加上一个换行符

fp.writelines(seq)                      # 把seq的内容全部写到文件中(多行一次性写入)

fp.writeable()                          # 是否可写

fp.close()                              # 关闭文件。

fp.flush()                              # 把缓冲区的内容写入硬盘

fp.fileno()                             # 返回一个长整型的”文件标签“

fp.isatty()                             # 文件是否是一个终端设备文件(unix系统中的)

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

fp.next()                               # 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。

fp.seek(offset[,whence])                # 将文件打操作标记移到offset的位置。whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。

fp.seekable()                           # 是否可以seek

fp.truncate([size])                     # 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。

for line in open(‘data‘):

print(line)                       # 使用for语句,比较适用于打开比较大的文件

open(‘f.txt‘, encoding = ‘latin-1‘)     # Python3.x Unicode文本文件

时间: 2024-10-07 22:50:35

python3_05.文件操作那些事的相关文章

强大的pdf文件操作小工具——PDFtk的小白用法

前言 作为程序员,大家都知道的,总是会被技术小白问各种跟编程没什么关系的硬件.软件问题.曾经被一技术小白同事问到有没有什么办法合并pdf文件,当时自己也是一头雾水,因为自己工作生活很少会去操作pdf文件,而当时公司对开发人员的电脑权限管理很严格,不论是上网还是安装软件,都受到很大限制,最后硬着头皮忙活了一阵子也没在解决. 前两天在写批处理程序的时候,发现批处理程序是有合并文件的命令的,我忽然想起之前这个同事的问题,就试了一下合并pdf,然而并不行.虽然失落了一下,但本着学习的精神还是百度了一下关

python 文件操作总结

文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义.按照本人经验,IO也是蛮头疼的一件事,因为不会用得太多,所以总是记不住API,每次都要重新google就会打断思路,还不一定每次都快速得到正确的文章. 本文内容包括: 文件的读写操作 文件的各种系统操作 存储对象 基于字符read & write 最基本的文件操作当然就是在文件中读写数据.这也是很容易掌握的.现在打开一个文件以进行写操作: 1. fileHandle = open ( 'test.txt', 'w'

Xamarin.Forms学习之Platform-specific API和文件操作

这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十章和需要相关知识的第九章,这篇文章中的内容则是我学习这两章的一点记录和分享,还是那样,有错请留言指正,谢谢! 不同的平台存在着一些特定的API,通过在电子书中两章的学习,实践一下如何调用这些API和将这些API封装成公共的库,供以后的项目调用.以一个显示平台信息的小实例开始做一个简单的演示,其运行效

python速成第二篇(小爬虫+文件操作+socket网络通信小例子+oop编程)

大家好,由于前天熬夜写完第一篇博客,然后昨天又是没休息好,昨天也就不想更新博客,就只是看了会资料就早点休息了,今天补上我这两天的所学,先记录一笔.我发现有时候我看的话会比较敷衍,而如果我写出来(无论写到笔记本中还是博客中,我都有不同的感觉)就会有不同的想法,我看书或者看资料有时候感觉就是有一种惰性,得过且过的感觉,有时候一个知识想不通道不明,想了一会儿,就会找借口给自己说这个知识不重要,不需要太纠结了,还是去看下一个吧,然后就如此往复下去,学习就会有漏洞,所以这更加坚定了我写博客来记录的想法.

Linux 文件操作监控inotify功能及实现原理【转】

转自:http://blog.chinaunix.net/uid-26585427-id-5012973.html 1. inotify主要功能 它是一个内核用于通知用户空间程序文件系统变化的机制. 众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug.udev 和 inotify 就是

makefile文件操作大全

 Makefile的规则 -- 转自 :http://blog.csdn.net/ruglcc/article/details/7814546/ 在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则.  target... : prerequisites ...           command           ...           ...         --------------------------------------------------

day 08 文件操作

一,初识文件操作: 用open()来打开一个文件,获取到文件句柄,然后通过文件句柄进行各种操作,需要注意的是读取完的文件句柄一定要关闭,使用 f.close() 打开?文件的?方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使?用的是r(只读)模式 二,只读操作: 1. r :只读模式 建一个文件名为"哈哈哈"的文件,然后读一下: f = open("哈哈哈",mode="r",encod

开发技术--浅谈文件操作与字符编码

开发|浅谈文件操作与字符编码 听说Python的文件操作很容易在某一些电脑上出问题,然而罪魁祸首就是字符编码.让我们来了解一些底层的编码方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 本文主要分为两大部分,一部分是如何使用Python进行文件操作,另一部分是聊一下字符编码的那些事.(比较绕,尽量用最最最通俗的话表述~~) 文件操作 1.文件操作方式 open(

Python 文件操作

操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读: 不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,