~~Python文件简单操作~~
进击のpython
*****
# Python文件操作
在说Python的文件操作之前
我们可以先思考一个问题
平时我们是怎么对电脑中的文件进行操作的呢?
打开电脑⇨找到文件⇨打开文件⇨读文件⇨修改文件⇨保存文件⇨关闭文件
对吧,这就是我们打开文件的基本流程
而 Python 打开文件的方式,也是这样的
打开电脑 ⇨ f=open(filename) ⇨ f.read() ⇨ f.write() ⇨ f.close()
f = open(filename):打开文件
f.read():读文件
f.write():写文件
f.close():保存并关闭
文件打开模式
这个概念可能会很陌生
在word中,打开文件之后
就可以对文件进行 读,写,修改等操作
但是在python中,只能以一种模式操作文件
需要确定文件打开模式,才能够进行相应操作
r read 读模式
w write 创建模式 如果硬盘里有相同名字的文件,就覆盖掉
a append 追加模式
创建文件
f = open("123.txt", mode="w")
f.write("dajiahao woshipeiqi\n")
f.write("zheshiwodemama\n")
f.write("zheshiwodebaba\n")
f.close()

没什么说的,很简单
读取模式
f = open("123.txt", mode="r")
t = f.read()
print(t)
f.close()

(换个背景颜色)
还有个语法是 readline() 读一行 自己试试
因为文件只能以一种形式进行操作
那当我用读取模式来操作文件之后,调用创建呢?
f = open("123.txt", mode="r")
t = f.read()
print(t)
f.write("hahh")
f.close()

看到报错了吧?了解没?凑弟弟们!
追加模式
追加模式就是在文件尾部添加数据
这么说可能不太好理解
直接上例子吧

当我执行下面的语句
f = open("123.txt", mode="a")
f.write("这是追加模式")
f.close()
执行结果就是这样的:

如果我刚开始的光标在这个位置,再执行相同的语句,就是这种情况:


还看不懂?那就多执行几下看看

有灵性了没???(没有灵性就自己多操作两遍,看不如动手!)
循环文件
无论你想做什么,都要先打开文件
你觉得我说的有没有道理?
f = open("123.txt") # 默认模式是read
for line in f :
print(line)
f.close()

欸?这就有问题了,我文件的里面也没有换行啊,怎么打印出来有换行啊?
其实在每行的末尾,他都默认的添加一个\n来进行换行
不信?
f = open("123.txt")
# for line in f :
# print(line)
print(f.readlines())
f.close()

看到了吗?
那遇到问题,怎么解决呢?
可以这样:print("",strip())
自己试试!
需求
下面这个文件,我想输出身高超过175的怎么办?

可以利用循环来做
f = open("123.txt")
for line in f:
line = line.split()
if int(line[2]) > 175:
print(line)
f.close()

我还想对体重有要求,这就不用写了吧!
语句
seek(x) 光标移动,走x个字节
flush()强制将缓存刷到硬盘
tell()返回光标位置,也是字节单位
truncate()指定长度截断文件,指定长度,从开头到A;不指定就是A到尾
混合模式
没想到吧,其实除了三种方法以外,还有另外的三种模式。
r+ 读写,能写能读,跟追加一样
w+ 写读,没什么屁用
a+ 追加读,光标在文件尾部,全是追加模式
自己用,没啥说的,混子,更加好用
问题
r+ 覆盖的问题
可以将文件放在内存中,然后对文件进行增删改查,最后覆盖到硬盘上
那不是占内存吗?有没有别的方法?
那你不想占内存,就得占硬盘
边读边写边存
import os old_file = "123.txt"
new_file = "456.txt" f_old = open(old_file,"r")
f_new = open(new_file, "w") old_str = "shenzhen"
new_str = "深圳" for line in f_old:
if "shenzhen" in line:
line = line.replace(old_str, new_str)
f_new.write(line) f_old.close()
f_new.close() os.remove(old_file)
os.rename(new_file,old_file)
别问os干什么的,有能耐你难为百度去啊…………
*有个练习*
*还挺简单*
~~Python文件简单操作~~的更多相关文章
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- python文件相关操作
Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...
- Python文件基础操作(IO入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...
- Java-IO读写文件简单操作2
承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...
- python文件高级操作
python文件高级操作和注意事项等等 文件过大保护 由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节/字符(根据rb,或者r ...
- python sqlite3简单操作
python sqlite3简单操作(原创)import sqlite3class CsqliteTable: def __init__(self): pass def linkSqlite3(sel ...
- Python 文件常见操作
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
- python文件读取操作、序列化
1.对文件进行读写操作时,先建立文件句柄 f = open("test.txt","r",encoding="UTF-8") 其中,r为文件 ...
- python 文件 IO 操作
Python 的底层操作 * 其实Python的文件IO操作方法,和Linux底层的差不多 打开 f = open(filename , "r") 后面的 "r" ...
随机推荐
- 恢复Win10照片查看器
批处理文件: @echo off&cd\&color 0a&cls echo 恢复Win10照片查看器 reg add "HKLM\SOFTWARE\Microsof ...
- C#高性能大容量SOCKET并发(九):断点续传
原文:C#高性能大容量SOCKET并发(九):断点续传 上传断点续传 断点续传主要是用在上传或下载文件,一般做法是开始上传的时候,服务器返回上次已经上传的大小,如果上传完成,则返回-1:下载开始的时候 ...
- MFC OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别
OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别,如果没有注意这个问题就会出现无厘头式的绘图问题-- 效果就是出不来!在经过 ...
- Q_DECLARE_METATYPE(继承QObject的类都已经自动注册),注册后的类型可以作为QVariant的自定义类型
简介 这个宏用来注册一个类(含默认构造.默认析构.拷贝构造函数)为QMetaType类型 ,注册后的类型可以作为QVariant的自定义类型. 这个宏应该放在类或者结构体外面的下面,也可以放在一个非公 ...
- Ring3下无驱动移除winlogon.exe进程ctrl+alt+del,win+u,win+l三个系统热键,非屏蔽热键(子类化SAS 窗口)
随手而作,纯粹技术研究,没什么实际意义. 打开xuetr,正常情况下.winlogon.exe注册了三个热键.ctrl+alt+del,win+u,win+l三个. 这三个键用SetWindowsHo ...
- ASP.NET Web API Controller 是怎么建成的
先看ASP.NET Web API 讯息管线: 註:为了避免图片太大以至于超过版面,上图中的「HTTP 讯息处理程序」区块省略了 HttpRoutingDispatcher 处理路由分派的部分.「控制 ...
- Silverlight ItemsControl详细解析+解惑
Silverlight最强大的地方就在于定义控件了,Silverlight提供了非常灵活和高效的控件定义方式,几乎可以实现任何复杂的控件实现,对于快速开发应用程序有着重要的意义.在Silverligh ...
- shell多线程之进程间通信
# 这是一个简单的并发程序,有如下要求: # .有两个程序a和b,希望他们能并发执行,以节约时间 # .a和b都是按照日期顺序执行,但b每日程序的前提条件是当日a的程序已经执行完毕 #解决方案: # ...
- Python连载13-shutile模块(续)和zipfile模块
一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...
- python算法与数据结构-单链表(38)
一.链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成.每个结点包括 ...