现在工作上主要用的语言是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(一)文件处理的更多相关文章

  1. 【程序员技术练级】学习一门脚本语言 python(三)跟数据库打交道

    接着上一篇,该篇讲述使用python对数据库进行基本的CRUD操作,这边以sqlite3为例子,进行说明.sqlite3 是一个非常轻型的数据库,安装和使用它是非常简单的,这边就不进行讲述了. 在py ...

  2. 【程序员技术练级】学习一门脚本语言 python(二)遍历本地文件系统

    这篇将讲述怎么使用python来遍历本地文件系统,并把文件按文件大小从小到大排序的一个小例子 在这个例子中,主要会用到python内置的和OS模块的几个函数: os.walk() : 该方法用来遍历指 ...

  3. 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作

    作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...

  4. 每个程序员都应该学习使用Python或Ruby

    每个程序员都应该学习使用Python或Ruby 如果你是个学生,你应该会C,C++和Java.还会一些VB,或C#/.NET.多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaSc ...

  5. 程序员带你学习安卓开发-XML文档的创建与解析

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...

  6. 程序员带你学习安卓开发系列-Android文件存储

    这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...

  7. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  8. 好程序员技术分享html5和JavaScript的区别

    好程序员技术分享html5和JavaScript的区别,HTML5广义上讲是前端开发学科的代名词,包含HTML5.CSS3及JavaScript三个重要的部分,是运行在浏览器上应用的统称.如PC端网站 ...

  9. [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …

    [Python 学习]2.5版yield之学习心得 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Pyth ...

随机推荐

  1. iOS wkwebview https 加载不受信用的站点

    iOS 9.0以上直接设置WKNavigationDelegate代理 func webView(_ webView: WKWebView, didReceive challenge: URLAuth ...

  2. C#ADO.NET基础一

    简介 使用SQLite进行讲解 1.基础类: SQLiteConnection 连接数据库 SQLiteCommand 执行命令(增,删,改,查),或存储过程 SQLiteDataReader 读取查 ...

  3. shell传参给matlab问题解决办法

    之前需要通过shell脚本传参给matlab程序,但是遇到一些问题,现将我遇到的问题分享出来,给遇到同样问题的人一些借鉴. shell部分脚本Execl.sh: /usr/bin/python /ho ...

  4. 洛谷P2764 最小路径覆盖问题(最大流)

    传送门 先说做法:把原图拆成一个二分图,每一个点被拆成$A_i,B_i$,若原图中存在边$(u,v)$,则连边$(A_u,B_v)$,然后$S$对所有$A$连边,所有$B$对$T$连边,然后跑一个最大 ...

  5. 1.Java 程序工作原理

    JVM:JAVA虚拟机,java程序运行在jvm上,jvm是java程序的运行环境. java程序的平台无关性:java编写的程序(.java)经过编译器变异成字节码文件(.class).这个字节码文 ...

  6. 190221协程与IO模型

    一.协程 又称微线程 协程是一种用户态的轻量级的线程 在单线程下实现的并发,例如:yield 优点: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 方便切换控制流,简化编程模型 高并发,高扩 ...

  7. POJ-3468-A Simple Problem with Integers(线段树 区间更新 区间和)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 139191 ...

  8. win10进入安全模式的方法

    https://jingyan.baidu.com/article/a3aad71ac5919bb1fa009667.html

  9. .NET 海量数据并发处理

    .NET 海量数据并发处理 2013-02-19 10:27 提问者悬赏:10分 |XL码的小伙纸| 分类:C#/.NET| 浏览364次 百万级的数据并发处理,网站呈现数据..NET 开发,可能会使 ...

  10. POJ - 1961 最小循环节

    如果循环节存在那在前缀部分也肯定存在 如果循环节存在那至少是可以匹配的 而next是维护最大前缀的,意会意会 注意一定要先判整除,即使别的题目保证是存在循环的 特意画了一张灵魂草图帮助理解 #incl ...