【程序员技术练级】学习一门脚本语言 python(一)文件处理
现在工作上主要用的语言是java,java在企业级的应用上能够发挥很好的用途,但有时候要做一个小功能时,比如批量更新文件,抓取网页等,这时候用java就显得太笨重了。因此就学习了python这门脚本语言。
这篇随笔主要是讲述python怎么处理文本文件,顺便巩固下python的一些基本知识。
好了,开始吧......
需求阐述
- 处理文本文件:读一个本地文件,逐行处理
说到处理文件,不得不说下python的内置函数 open
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
函数定义:打开一个文件,并返回相应的文件Object,如果指定的文件不能打开,那么 OSError 将会抛出
其中,file
参数表示需要打开的文件名称,
mode
是打开模式,
buffering用来控制文件的缓冲,默认值为0
,表示不缓冲,设置为1
就会有缓冲,
encoding 为文件编码,默认为系统编码,
errors 是一个可选参数,用来指定当文件在编码和解码过程中发生错误将怎么处理,注意,这个错误处理不会应用在mode为二进制的模式('b')中,
newline 用来控制通用换行符的工作模式(只工作在文本模式中)
mode
模式可以有以下几种:
字符 | 意义 |
---|---|
'r' | 以只读方式打开 (default) |
'w' | 以写方式打开,首先会删掉文件内容 |
'x' | 当文件已存在时,已独占方式打开 |
'a' | 以写方式打开,当文件存在时,会在内容末尾添加内容 |
'b' | 二进制 |
't' | 文本模式 (default) |
'+' | 更新一个磁盘文件 (reading and writing) |
'U' | universal newlines mode (已废弃) |
一般情况下,使用open()
函数时只需要调入文件名参数,而不添加其它任何参数,就可以获取文件内容。默认的模式是读模式,如果读取特殊文件(例如视频或者图片文件),那么必须使用‘b’模式。
下面是处理文本的一个例子展示:
# encoding=utf-8
file_path = "d:/test.txt"
file = open(file_path) #####1. read()##### print(file.read()) #####2. readline()##### line = file.readline()
while line:
print(line)
line = file.readline() #####2. readlines()##### for line in file.readlines():
print(line) 20 file.close()
上面列出来3种读取file的方式: read()、 readline()、 readlines()
- readlines: 最常用的一种方式,会把文件的每行内容转换成一个list,然后就可以进行各种操作
- read: 表示一次性返回文件的全部内容
- readline:返回文件的一行内容,下次调用时会继续读下一行,直到读取完
ok,处理文件的例子就到这!
【程序员技术练级】学习一门脚本语言 python(一)文件处理的更多相关文章
- 【程序员技术练级】学习一门脚本语言 python(三)跟数据库打交道
接着上一篇,该篇讲述使用python对数据库进行基本的CRUD操作,这边以sqlite3为例子,进行说明.sqlite3 是一个非常轻型的数据库,安装和使用它是非常简单的,这边就不进行讲述了. 在py ...
- 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统
这篇将讲述怎么使用python来遍历本地文件系统,并把文件按文件大小从小到大排序的一个小例子 在这个例子中,主要会用到python内置的和OS模块的几个函数: os.walk() : 该方法用来遍历指 ...
- 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作
作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...
- 每个程序员都应该学习使用Python或Ruby
每个程序员都应该学习使用Python或Ruby 如果你是个学生,你应该会C,C++和Java.还会一些VB,或C#/.NET.多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaSc ...
- 程序员带你学习安卓开发-XML文档的创建与解析
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...
- 程序员带你学习安卓开发系列-Android文件存储
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...
- 程序员带你学习安卓开发,十天快速入-对比C#学习java语法
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 好程序员技术分享html5和JavaScript的区别
好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5.CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称.如PC端网站 ...
- [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …
[Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...
随机推荐
- 301 MovedPermanently 重定向
页面永久性移走(301重定向)是一种非常重要的“自动转向”技术. 301重定向可促进搜索引擎优化效果 从搜索引擎优化角度出发,301重定向是网址重定向最为可行的一种办法.当网站的域名发生变更后,搜索引 ...
- C#7.0连接MySQL8.0数据库的小笔记
1.要连接MySql数据库必须首先下载MySql官方的连接.net的文件,文件下载地址为https://dev.mysql.com/downloads/connector/net/6.6.html#d ...
- 将.net core 发布到Linux上的一些坑
目前遇到的,之后遇到再加 1.时间格式要用.ToString("yyyy-MM-dd HH:mm:ss"); 2.文件路径要用Path.Combine(),IHostingEnvi ...
- Kotlin 函数和函数表达式
学习了kotlin 的控制. 其中最为强大的是各种控制可以直接作为表达式来使用. 那么在kotlin中,函数也是可以作为表达式来使用. 而且kotlin中函数的创建方式有很多方式. 第一种: 传统创建 ...
- this、static、main方法、静态代码块、final关键字、Runtime类、Cloneable类、类成员的访问控制权限、异常体系
this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象: static关键字: 修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的 ...
- CHOCBase
1.基础常用知识点 1.1 监听某个对象变化的四种方式 代理监听Delegate Notification通知 KVO键值监听 Block代码块 addTarget方法 1.2 音频视频相册等 2.常 ...
- django中ImageField模块使用
https://blog.csdn.net/meylovezn/article/details/47124923
- 趣图:TCP 与 UDP 的差别
趣图:程序猿和运维狗的工作日常…… 趣图:Java 和 PHP 之间的战斗
- April Fools Day Contest 2019 A. Thanos Sort
A. Thanos Sort time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- vSphere 安装操作系统
0.找到 vSphere Client 安装文件并安装 1.创建完成EXSI.Openfiler - 磁盘创建 * - 网卡设置 2.openfiler LVM 3.EXSI of ISCSI 4.s ...