python open函数_精选2个小例子,带你快速入门Python文件处理

0492e4063f7848948550001f98599310

阅读本文大概需要7分钟讲完了函数和模块,我们来讲一讲文件的使用,python对数据的处理分两种一种是本地文件的处理,另外一种是通过网络数据处理(也就是爬虫相关的).而本地的数据处理,主要是通过文件的读和写完成~~我们先想一想平时对文件处理一般遇到哪些问题:

这个两个是非常常见的问题,如何处理呢,python十几行简单的代码就能搞定,那我们快来学习一下吧:Python的文件处理简单来说分以下几点:

1.文件的读写和关闭python中要想获得文件里的内容,先要打开文件,然后才能读和写.而且写完之后一定要记得关闭.python中对文件的打开是通过open函数来获得一个句柄,

(也许有同学问为啥要关闭文件啊,因为若不正常关闭,缓冲在内存中的数据就不能真正写入到文件中,可能造成数据丢失)1)文件的打开file_obj=open(filename,mode='r',buffering=-1)#一共有3个参数,第一个是强制参数,后面两个是可选的#mode可以是读,写或者追加,一般默认是读文件#buffering主要是设置缓存区,一般我们都是用-1表示用系统的默认缓冲区,若写100,表示缓冲区为1002)文件的读取 f=open(r'somefile.txt') f.readline()#表示读文件的一行 f.readlines()#表示把文件从头到尾都读出来,并保存为一个列表3)文件的写入 f=open(r'somefile.txt','w') f.write()#表示把字符串写入 f.writelines()#表示把一个列表写入4)文件的关闭使用文件应该牢记关闭#重要的事情说3遍我已经说了3遍了普通的关闭方法:f=open(r'somefile.txt')...xxx#do somethingf.close()懒人专用方法with open(r'somefile.txt') as f: f.readlines()强烈推荐用with方法,这是pythonic里面非常推荐的一种方法,因为它会自动帮你关闭文件。你只要专注对文件的处理就可以了,是不是非常贴心~~2.文件的模式上面只列举了python的读和写,那其他的模式怎么办呢~~不要急,python只需要改变一下open里面的模式参数就可以.python中有以下几种模式,详细见下表

3.文件的读取位置有的时候我们只想读文件的一部分的内容,或者我们需要从文件的某个位置读数据,应该怎么操作呢,用seek()函数file_obj.seek(offset,whence=0)#seek主要是在文件中移动指针,从whence(0表示文件头,1表示当前位置,2表示文件尾)偏移offset个字节====123.txt===1234567891)从头读3个字符f=open('123.txt')f.seek(0,0)print f.read(3)f.close()>>1232)从尾读3个字符f=open('123.txt')f.seek(-3,2)#2表示从文件指针指向尾巴,-3表示向前移动3个字节print f.read(3)#读3个字节f.close()>>789下面我们通过2个小例子讲一下假如你你有个叫Test目录,它的结构如下:里面有2个文件,一个txt文件(里面有4行内容),一个新建的demo.py|----abc1109.txt---GoogleMicrisoftBaiDuFacebook|----demo.py------例子1:把abc1109.txt里面的内容读出来,写到一个新的文件,按照下面的格式:|-----Output------1: Google2: Micrisoft3: BaiDu4: Facebook先写一个粗糙的解法

94acafb84b374e618fd1306ec21f1a97

接着我们把上面的代码整理,重构一下

c71869ec9362427da69108c9ac130b8d

上面的代码重构了一下是不是看的清晰一点,而且用了with的用法简洁很多,是不是很爽,重构其实是非常重要的技巧.其实这个例子有一点小问题(就是没有对文件加异常保护,因为异常后面再讲,所以暂时先不写).例子2:把Test目录下面的2个txt文件改名字:原来的:|----abc1109.txt---------|----new_abc1109.txt---|----demo.py--------------通过引入os模块,把读出来的文件名用字符串的内置函数translate处理一下,就ok了,看源码如下:

52a3458309864008b9f224354f267b37

好了Python的文件快速入门就讲到这里啦,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

需要更多2020最新Python资料 私信我奥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/562730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java判断一个整数是否为水仙花数

判断一个整数是否为水仙花数 import java.util.Scanner;/*** 从键盘上输入一个数字&#xff0c;判断是不是水仙花数* <p>* 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身* <p>* 例如&#xff1a;* 153 1*1*1 5*5*5 3*3*3 ;*/ public c…

mysql with as 用法_Python之图解with语句

在我们使用Python的时候&#xff0c;常使用到如下的代码块:# 文件读取 with open(file, r) as f:# CODE BLOCK ## 梯度计算 with tf.GradientTape() as g:# CODE BLOCK #在很多场景中&#xff0c;使用with语句来可以让我们可以更好地来管理资源和简化代码&#xff0c;它可以看做…

java实现从键盘上输入学生考试的科目和学生的每科分数,输出总分、最高分、最低分、平均分

java实现从键盘上输入学生考试的科目和学生的每科分数&#xff0c;输出总分、最高分、最低分、平均分 import java.util.Scanner;/*** 从键盘上输入学生考试的科目数和学生的每一科分数 输出总分、最高分、最低分、平均分*/ public class Test08 {public static void main(St…

aidl使用_Android进阶之AIDL如何使用自定义类型

如何在 AIDL 中使用自定义类型&#xff0c;具体步骤如下&#xff1a;创建自定义类型声明自定义类型定义与自定义类型相关的业务重写业务实体类远程调用验证 AIDL1. 创建自定义类型自定义类型传输的就是一个实体对象&#xff0c;这个实体类必须实现 Parcelable 接口&#xff0c;…

java判断一个整数是不是素数(质数)

java判断一个整数是不是素数&#xff08;质数&#xff09; /*** 判断一个数是不是素数&#xff08;质数&#xff09;* 质数是指在大于1的自然数中&#xff0c;除了1和它本身以外不再有其他因数的自然数。*/import java.util.Scanner;public class Test09 {public static void …

mysql获取时间戳_服了!阿里Mysql三位封神专家总结1200多页性能优化的千金良方...

MYSQL&#xff08;关系型数据库管理系统&#xff09;MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relatio…

java输出1-100之间的全部素数

java输出1-100之间的全部素数 public class Test10 {public static void main(String[] args) {int i 2;while (i < 100) {int num 2;boolean flag true;while (num < i) {if (i % num 0) {flag false;}num;}if (flag) {System.out.print(i"\t");}i;}} }…

java生成指定范围的随机数

java生成指定范围的随机数 /*** 如何在程序中生成指定范围的随机数** 生成23-59之间的随机数*/ public class Test11 {public static void main(String[] args) {/*** Math.random() 生成&#xff08;0,1&#xff09;之间的小数&#xff0c;不包括0和1* 所以生成23-59之间的随…

linux cached释放_正点原子Linux第四十一章嵌入式Linux LED驱动开发实验

1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论&#xff1a;9354467413&#xff09;关注正点原子公众号&#xff0c;获取最新资料更新第四十一章嵌入式Linux LED驱动开发实验上一章我们详细的讲解了字符设备驱动开发步骤&#xff0c;并且用一个虚拟的c…

java模拟回合打怪游戏

java模拟回合打怪游戏 玩家的血值&#xff1a;w 315 怪物的血值&#xff1a;g 500 玩家和怪物互打 玩家每次攻击怪物产生5-8点伤害 怪物每次攻击玩家产生3-5点伤害 采用回合制&#xff0c;一方血量<0游戏结束 用java程序模拟战斗过程&#xff1a;&#xff08;用文字…

cad pu插件下载lisp_CAD自动编号lisp插件下载

点击上方 “CAD自学网 ” → 点击右上角“...” → 点选“设为星标 ★ ”为CAD自学网加上星标&#xff0c;即可及时收到干货啦&#xff01;左下角阅读原文看CAD视频好课推荐&#xff1a;1、CAD2014&#xff1a;点击查看 2、室内&全屋&#xff1a;点击查看 3、CAD2019&am…

java循环的嵌套执行

java循环的嵌套执行 /*** 循环的嵌套执行*/ public class Test14 {public static void main(String[] args) {/*** 外层循环执行一次&#xff0c;内层循环执行多次*/int c 0;int i 1;while(i<10){System.out.println("i的值为&#xff1a;"i);int j 1;while (…

无法启动parallels 缺少必要组件_Parallels 体验 Manjaro 19 (Xfce)

用 Mac Parallels 体验 Manjaro Linux 19个人偏爱Xfce桌面安装时遇到一些问题, 在此快速记录一下启动安装盘时卡住参考资料 Manjaro 19 wont boot with Parallels 151. 按 Crtl Alt F2 进入命令行2. 按提示信息登录3. 安装 video-vesa 驱动sudo mhwd -i pci video-vesa 4. 启动…

java百马百担问题

java百马百担问题 /*** 一百担粮食&#xff0c;用一百匹马一次运走* 大马 一次托4担粮食* 中马 一次托2担粮食* 小马 两匹托1担粮食* 问&#xff0c;三种马各有多少匹* 4d2z1/2x 100*/ public class Test15 {public static void main(String[] args) {//计数变量int i 0;//大…

python百度翻译爬虫_Python爬虫教程-05-python爬虫实现百度翻译

使用python爬虫实现百度翻译功能 python爬虫实现百度翻译&#xff1a; python解释器【模拟浏览器】&#xff0c;发送【post请求】&#xff0c;传入待【翻译的内容】作为参数&#xff0c;获取【百度翻译的结果】 通过开发者工具&#xff0c;获取发送请求的地址 提示&#xff1a;…

java打印直角三角形和倒立直角三角形

一&#xff0c;java打印直角三角形 /*** for循环输出直角三角形*/ public class Test16 {public static void main(String[] args) {for (int i1;i<9;i){for (int j1;j<i;j){System.out.print("*");}System.out.println();}} }执行代码如下&#xff1a; 二&am…

chrome 代理插件_Chrome浏览器拓展插件同步助手

由于很多原因我们在使用Google服务的时候&#xff0c;总是不容易&#xff0c;但是有的时候又绕不开。比如新装Chrome浏览器在没有XXX的情况下如何同步我们已经安装过的插件呢&#xff1f;实在没办法只能一个一个装又太麻烦&#xff0c;所以今天介绍一个可以帮助我们同步插件的拓…

java打印倒立直角三角形

一&#xff0c;java打印倒立直角三角形 /*** java打印倒立直角三角形*/ public class Test18 {public static void main(String[] args) {for (int i1;i<10;i){for (int j1;j<10-i;j){System.out.print("*");}System.out.println();}} }执行代码如下&#xff…

css居中的几种方法_CSS几种常用的水平垂直居中对齐方法

文字的水平垂直居中class"content"> <p>文字水平垂直居中p> </div>.content{ width: 400px; height: 100px; border: #000000 solid 1px;}当前效果&#xff1a;.content{ width: 400px; height: 100px; border: #000000 solid 1px; text-al…

java打印等腰三角形和倒立等腰三角形

一&#xff0c;java打印等腰三角形 package demo01;/*** java打印等腰三角形*/ public class Test20 {public static void main(String[] args) {for (int i 1; i < 10; i) {for (int j 10; j > i; j--) {System.out.print(" ");}for (int j 1; j < 2 *…