#20 Python文件
前言
前面几节枯燥的模块终于结束了,想要完全掌握前几节的模块需要不断的练习才行,毕竟眼过千遍不如手过一遍嘛。在一些项目需求里,要对文件进行IO操作,毕竟重要数据不可能打印到屏幕上而不去保存,Python对的文件IO操作并不是很复杂,相信你很快就能掌握它!
文件IO操作
对于一个文件的操作,无非不过创建、删除、读、写,创建和删除在OS模块里面已经说过,那只剩下读和写了,也就是IO(Input,Output)操作了。
接下来,将以徐志摩的《再别康桥》为例子,深入解读Python中文件IO操作
轻轻的我走了,
正如我轻轻的来;
我轻轻的招手,
作别西天的云彩。
----
那河畔的金柳,
是夕阳中的新娘;
波光里的艳影,
在我的心头荡漾。
----
软泥上的青荇,
油油的在水底招摇;
在康河的柔波里,
我甘心做一条水草!
----
那榆荫下的一潭,
不是清泉,是天上虹;
揉碎在浮藻间,
沉淀着彩虹似的梦。
----
寻梦?撑一支长篙,
向青草更青处漫溯⑷;
满载一船星辉,
在星辉斑斓里放歌。
----
但我不能放歌,
悄悄是别离的笙箫;
夏虫也为我沉默,
沉默是今晚的康桥!
----
悄悄的我走了,
正如我悄悄的来;
我挥一挥衣袖,
不带走一片云彩。
1. 打开文件
Python获得文件句柄的方式与c及其类似,使用内置函数open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 「file表示文件名、mode表示打开方式(默认为读)、buffering表示寄存区缓冲大小(负值为系统默认,0为没有寄存区缓存,1为文件会寄存行,大于1的整数为寄存区缓存大小)、encoding表示文件编码、newline表示换行符(默认为\n)」
f = open('再别康桥.txt')   # 以默认读的方式打开再别康桥,注意:文件路径(此时程序和再别康桥在同一路径)
f = open('xxx.txt', 'w')   # 以写的方式打开文件,注意:如果此文件不存在,则创建这个文件;如果存在,则删除原文件所有内容
对于不同的文件,有不同的处理方式,常用的mode参数如下:
模式 描述
r 读
w 写
r+ 读写
w+ 写读
a 追加
a+ 追加读
rb 二进制读
wb 二进制写
rb+ 二进制读写
wb+ 二进制写读
ab 二进制追加
ab+ 二进制追加读
这些模式看似复杂,其实内部规律很清晰,接下来将用文件的读和写来充分了解这些模式
2. 文件的读
read() 「读取文件指针之后的所有内容,并返回字符串」
这里提到了一个新概念:文件指针,想象一下,你在读书,你的手指头指着你正在读的地方,你没读一个字,你的手指头就跟着向后动一下,你的手指头就是文件指针,以上模式中,除了a、a+、ab+文件指针在文件末尾之外,其他的都是在文件开头
In [2]: f = open('再别康桥.txt')   # 默认读的方式打开文件
In [3]: f.read()                  # 读取文件指针之后的所有内容
Out[3]: '轻轻的我走了,\n正如我轻轻的来;\n我轻轻的招手,\n作别西天的云彩。\n----\n那河畔的金柳,\n是夕阳中的新娘;\n波光里的艳影,\n在我的心头荡漾。\n----\n软泥上的青荇,\n油油的在水底招摇;\n在康河的柔波里,\n我甘心做一条水草!\n----\n那榆荫下的一潭,\n不是清泉,是天上虹;\n揉碎在浮藻间,\n沉淀着彩虹似的梦。\n----\n寻梦?撑一支长篙,\n向青草更青处漫溯;\n满载一船星辉,\n在星辉斑斓里放歌。\n----\n但我不能放歌,\n悄悄是别离的笙箫;\n夏虫也为我沉默,\n沉默是今晚的康桥!\n----\n悄悄的我走了,\n正如我悄悄的来;\n我挥一挥衣袖,\n不带走一片云彩。\n'
In [9]: f = open('再别康桥.txt', 'w')   # 以写的模式打开文件,此时这个文件的内容已经被删除了												
											#20   Python文件的更多相关文章
	
								- Python 文件常见操作
		
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname()  ...
		 
						- python文件I/O(转)
		
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
		 
						- python 文件操作总结
		
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
		 
						- Python基础篇【第2篇】: Python文件操作
		
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
		 
						- Python 文件I/O (转)
		
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
		 
						- Python学习笔记(二)-Python文件类型及编程模式
		
Python环境搭建:linux,Windows... Linux下:[root@localhost StudyPython]# python #进入交互模式Python 2.7.11 (defaul ...
		 
						- 初学Python——文件操作第二篇
		
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
		 
						- python文件、文件夹操作OS模块
		
转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径:  ...
		 
						- 【转】python文件和目录操作方法大全(含实例)
		
python文件和目录操作方法大全(含实例) 这篇文章主要介绍了python文件和目录的操作方法,简明总结了文件和目录操作中常用的模块.方法,并列举了一个综合实例,需要的朋友可以参考下一.python ...
		 
		
	
随机推荐
	
									- centos6安装oracle11g过程中报错Error in invoking target “install” of makefile ‘/home/oracle/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk’
			
报这个错误的原因是由于缺少compat_libstdc包所导致.安装即可 1.在http://www.rpm-find.net/linux/rpm2html/search.php?query=comp ...
			 
						- usb2.0、usb3.0、usb3.1、type-c 接口含义与区别
			
简单说: usb3.0 比2.0的传输速率快,充电快,能向下兼容2.0 usb3.1 通常是指 usb3.1 gen2,比3.0的传输速率更快.充电更快,同兼容 type-c 通常是指 usb3.1的 ...
			 
						- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
			
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...
			 
						- linux系统中使用socket直接发送ARP数据
			
这个重点是如这样创建socket:  sock_send = socket ( PF_PACKET , SOCK_PACKET , htons ( ETH_P_ARP) ) ; 其后所有收发的数据都是 ...
			 
						- BAT:文件中替换字符(保留空格和换行)
			
@echo off rem CMD:"color --help" :: setting color:back white,content blue color f9 ::old s ...
			 
						- webservice的两种方式SOAP和REST的通俗理解
			
Webservice代表所有基于web的服务,包含两种方式SOAP和REST 以SOAP为例: 一个RPC call 就是把一个XML文档post到某个URL下,这个xml文档里写明我要调用的函数名和 ...
			 
						- c++实现对windwos 下socket 的封装(实现封包及拆包处理)
			
SuperSocket.h #pragma once #include<string> #include<iostream> #include <WINSOCK2.H&g ...
			 
						- python 单例模式的四种实现方法及注意事项
			
一.模块单例 Python 的模块就是天然的单例模式,因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码. #foo1.py clas ...
			 
						- springDatasolr  排序
			
String sortValue = (String) searchMap.get("sort");// ASC DESC String sortField = (String)  ...
			 
						- 多条SQL语句对查询结果集的垂直合并,以及表设计时如何冗余字段
			
需求引入 你有一个销售单表A 和一个销售单详情表B 和一个收付款记录表C A---->B 一对多   A---->C一对多 如果一个销售单有两个详情,三条收款记录 对一个销售单 我们想查询 ...