【程序员技术练级】学习一门脚本语言 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 ...
随机推荐
- C# Socket通信改进记录
1. Socket 使用原始Socket,Send和Recv方法 进行发送和消息获取.(另起后台线程 不停获取和发送) public void RecvMsg() { //receive messag ...
- C#中线程的委托
很多时候写windows程序都需要结合多线程,在C#中用如下得代码来创建并启动一个新的线程. Thread thread = new Thread(new ThreadStart(ThreadProc ...
- C#backgroundWorker
private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); } priva ...
- Dynamically loading unmanaged OCX in C#
You'll have to perform a number of steps that are normally taken of automatically when you use the t ...
- Socket 简易静态服务器 WPF MVVM模式(四)
最重要的一个类Socket类 using System; using System.Collections.Generic; using System.IO; using System.Linq; u ...
- C# Winform下一个热插拔的MIS/MRP/ERP框架(多语言方案)
个别时候,我们需要一种多语种切换方案. 我的方案是这样的: 1.使用文本文本存储多语言元素,应用程序启动时加载到内存表中: 2.应用程序启动时从配置文件加载语种定义: 3.所有窗体继承自一个Base基 ...
- 题解 P1255 【数楼梯】
题目链接 好吧,承认python 轻松水过 代码奉上: n = int(input()) #定义,输入 a=1 #初始的变量赋值 b=1 n-=1 #我的毒瘤的循环不得不加上这句话 if n > ...
- UML之时序图详解
原文链接:https://blog.csdn.net/fly_zxy/article/details/80911942 什么是时序图 时序图(Sequence Diagram),又名序列图.循序图,是 ...
- idea 激活
激活时选择License server,填入 http://idea.wlphp.com:1017 点击Active即可 2DZ8RPRSBU-eyJsaWNlbnNlSWQiOiIyRFo4UlBS ...
- MYSQL 面试常见问题汇总
转自: https://blog.csdn.net/u011010851/article/details/80074550 Q1:主键,外键,超键,候选键:主键 对表中数据进行唯一标识的数据列的 ...