进击の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文件简单操作~~的更多相关文章

  1. python 文件读写操作(24)

    以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...

  2. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  3. Python文件基础操作(IO入门1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6422270.html 本文出自:[Edwin博客园] Python文件基础操作(IO入门1) 1. pyth ...

  4. Java-IO读写文件简单操作2

    承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...

  5. python文件高级操作

    python文件高级操作和注意事项等等 文件过大保护 由于read是一次性读取文件所有的内容,如果文件100G,内存就会吃不消,所以推荐使用read(size)一次读取指定字节/字符(根据rb,或者r ...

  6. python sqlite3简单操作

    python sqlite3简单操作(原创)import sqlite3class CsqliteTable: def __init__(self): pass def linkSqlite3(sel ...

  7. Python 文件常见操作

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname()  ...

  8. python文件读取操作、序列化

    1.对文件进行读写操作时,先建立文件句柄 f = open("test.txt","r",encoding="UTF-8") 其中,r为文件 ...

  9. python 文件 IO 操作

    Python 的底层操作 * 其实Python的文件IO操作方法,和Linux底层的差不多 打开 f = open(filename , "r") 后面的 "r" ...

随机推荐

  1. 【全面解禁!真正的Expression Blend实战开发技巧】第三章 从最常用ButtonStyle开始 - TextButton

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第三章 从最常用ButtonStyle开始 - TextButton 在实际项目中,使用blend做的最多的一定是各种自定义But ...

  2. C# Newtonsoft.Json JObject移除属性,在序列化时忽略

    原文 C# Newtonsoft.Json JObject移除属性,在序列化时忽略 一.针对 单个 对象移除属性,序列化时忽略处理 JObject实例的 Remove() 方法,可以在 指定序列化时移 ...

  3. oracle,sql server count函数 存储过程 判断 行数 注意事项

    oralce中使用 count 函数判断 行数 需要注意 一定是count 有值的字段,接下来看一组语句 --查询数据 select * from kk_create_ka where auto_id ...

  4. Win8Metro(C#)数字图像处理--2.16图像浮雕效果

    原文:Win8Metro(C#)数字图像处理--2.16图像浮雕效果  [函数名称] 图像浮雕效果函数ReliefProcess(WriteableBitmap src) [函数代码]       ...

  5. UWP项目生成错误: 未能使用“CompileXaml”任务的输入参数初始化该任务。“CompileXaml”任务不支持“PlatformXmlDir”参数。请确认该参数存在于此任务中,并且是可设置的公共实例属性。

    UWP项目生成错误: 未能使用“CompileXaml”任务的输入参数初始化该任务.“CompileXaml”任务不支持“PlatformXmlDir”参数.请确认该参数存在于此任务中,并且是可设置的 ...

  6. 蚂蚁金服招聘-JAVA资深开发工程师/专家-蚂蚁金服保险

    岗位描述: 1.协助业务方梳理业务需求,提供业务规划方案.架构设计方案: 2.负责业务系统的规划设计,制定产品的技术发展路线,完成重要业务模块及核心框架的搭建及编码实现: 3.发现和解决业务系统的技术 ...

  7. UWP中的消息提示框(二)

    在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统To ...

  8. CS224n笔记一:开端

    何为自然语言处理 自然语言处理的目标是让计算机处理或者"理解"自然语言,以完成有意义的任务,如QA等. 自然语言处理涉及的层次 输入有两个来源:语音和文本,所以第一级是语音识别,O ...

  9. 宿主机与虚拟机系统的USB设备切换

    有时候我们需要在虚拟机的操作系统中进行一些USB设备的测试,但默认情况下USB设备是在宿主机系统里面的,那这个时候我们就要进行切换才能够达到目的,具体要怎么操作呢?下面讲解一下:   1. Ctrl+ ...

  10. foruok安晓辉的《程序员,你好哇》,都很不错

    http://blog.csdn.net/foruok 买书: http://item.jd.com/11904166.html