python的文件操作

  1,打开文件

  编码方式要和文件的编码方式相同!

#open('路径','打开方式','指定编码方式')
f = open(r'E:\pycharm\学习\day8\test', mode='r', encoding='utf-8')

    打开方式:

    只读 r

with open('test', mode='r', encoding='utf-8') as f:
print(f.read())

    只写 w

with open('test', mode='w', encoding='utf-8') as f:
f.write('举头望明月,低头思故乡。') # test文件不存在则新建 存在则删除原文件的内容后添加新的

    追加 a

with open('test', mode='a', encoding='utf-8') as f:
f.write('举头望明月,低头思故乡。') # test文件不存在则新建 存在则在原文件内容的后面添加

    读写 r+

with open('test', mode='r+', encoding='utf-8') as f:
print(f.read())
f.write('海上生明月,天涯共此时。') # 先读后写 写的添加到后面
with open('test', mode='r+', encoding='utf-8') as f:
f.write('海上生明月,天涯共此时。')
print(f.read()) # 先写后读 写的从头开始逐一覆盖添加

    写读 w+

with open('test', mode='w+', encoding='utf-8') as f:
f.write('举头望明月,低头思故乡。')
print(f.read()) # 相当于先w清空写好内容后光标在最后索引r没有任何内容
with open('test', mode='w+', encoding='utf-8') as f:
print(f.read())
f.write('举头望明月,低头思故乡。') # 相当于先w清空 所以读的内容为空 然后再写入新的内容

  2,操作文件

    读文件

with open('test', mode='r', encoding='utf-8') as f:
print(f.read()) # 一次性读取全部内容
with open('test', mode='r', encoding='utf-8') as f:
print(f.readline()) # 一行一行读取
with open('test', mode='r', encoding='utf-8') as f:
print(f.readlines()) # 一次性读取全部,转换为列表,元素是每行的内容

    写文件

with open('test', mode='w', encoding='utf-8') as f:
f.write('举头望明月,低头思故乡。') # test文件不存在则新建 存在则删除原文件的内容后添加新的

    其他的操作方式

# 定义读取的字符个数
with open('test', mode='r', encoding='utf-8') as f:
print(f.read(2)) # 负数获取全部 0为空
# 移动指针位置
with open('test', mode='r', encoding='utf-8') as f:
f.seek(3) # 移动是按字节数
# f.seek(2) # utf-8一个中文字符三个字节表示 所以2个字节找不到报错
print(f.read())
# 获取字符指针的位置
with open('test', mode='r', encoding='utf-8') as f:
f.read() # 将文件读完 指针移动到结尾
print(f.tell()) # tell()返回指针位置
# 截取指定长度的字符  截取是按字节数
with open('test', mode='r+', encoding='utf-8') as f:
f.truncate(9) # 截取前9个字节,英文就是前九个 ,中文是前三个

  3,关闭文件

    一般在操作完成后加close()来完成关闭文件。(容易忘记!)

f = open(r'E:\pycharm\学习\day8\test', mode='r', encoding='utf-8')
content = f.read()
print(content)
f.close() # 关闭

    另外一种方式可以有效的避免忘记写close()。

# 通过with ... as来进行文件处理,最后会自动关闭文件
with open('test', mode='r', encoding='utf-8') as f:
print(f.read())

    

  

python基础八之文件操作的更多相关文章

  1. 第三章:Python基础の函数和文件操作实战

    本課主題 Set 集合和操作实战 函数介紹和操作实战 参数的深入介绍和操作实战 format 函数操作实战 lambda 表达式介绍 文件操作函数介紹和操作实战 本周作业 Set 集合和操作实战 Se ...

  2. Python基础-week03 集合 , 文件操作 和 函数详解

    一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...

  3. Python基础7:文件操作

    [ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...

  4. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

  5. Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数

    1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...

  6. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...

  7. python基础学习笔记——文件操作

    文件操作 初始文件操作 使用Python来读写文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了 根据打开方式的不同能够执行的操作 ...

  8. Python基础之 一 文件操作

    文件操作 流程: 1:打开文件,得到文件句柄并赋值给一个变量 2:通过句柄对文件进行操作 3:关闭文件 模式解释 r(读) , w(写) ,a(附加)r+(读写的读), w+(读写的写),a+(读附加 ...

  9. python基础学习之文件操作&函数

    1.文件处理相关 1.编码问题 ①python2与python3中的默认编码: py2默认使用ASCII码,py3默认使用utf-8 ②为什么会出现中文乱码,中文乱码的情况有哪些? #sys.stdo ...

随机推荐

  1. jQuery中的工具和插件

    jQuery的工具属性 jQuery类数组操作 length属性 表示获取类数组中元素的个数 get()方法 表示获取类数组中单个元素"括号中填写该元素的索引值" index()方 ...

  2. Leetcode896.Monotonic Array单调数列

    如果数组是单调递增或单调递减的,那么它是单调的. 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的. 如果对于所有 i <= j,A[i]> = ...

  3. <> 是不等号的意思

    <> 是不等号的意思,也有的语言可以写作:#  或者 != 1.=表示 等于: 2.<> 表示不等于:(注释:在 SQL 的一些版本中,该操作符可被写成 !=): 3.> ...

  4. 微信小程序组件——bindtap和catchtap的区别

    了解知识点 DOM模型是一个树形结构,在DOM模型中,HTML元素是有层次的.当一个HTML元素上产生一个事件时,该事件会在DOM树中元素节点与根节点之间按特定的顺序传播,路径所经过的节点都会收到该事 ...

  5. [React Native]去掉WebStorm中黄色警告

    用WebStorm开发RN难免会碰到一大堆黄色警告.就像下面这样. 其实这个错误并不会影响开发,但是作为一个上升处女座的,我很难忍.于是各种想办法. 上网查了半天发现这篇文章 http://blog. ...

  6. HZOJ 导弹袭击

    比较显然的一个性质是如果存在$a(i)>=a(j) \& \& b(i)>=b(j)$那么j没用. 我们并不需要A,B的具体取值,我们之关心$\frac {A}{B}$. ...

  7. 2016 Asia Jakarta Regional Contest J - Super Sum UVALive - 7720 【快速幂+逆元】

    J-Super Sum 题目大意就是给定N个三元组<a,b,c>求Σ(a1^k1*a2^k2*...*ai^ki*..an^kn)(bi<=ki<=ci) 唉.其实题目本身不难 ...

  8. UVa 623 大整数乘法

    UVa 623 计算N! n上限为1000自然不能直接算.所以可以开一个数组f[],f[]每一位存N!结果的6位.如果按进制来理解,就是10^6进制: 例如 11!=39916800=11*10!=1 ...

  9. Android学习:导入工程时报错The import android cannot be resolved

    今天在导入别人的工程时,出现了一个这个问题The import android cannot be resolved 就是找不到import android.support.v7.app.Action ...

  10. SharpDX初学者教程第2部分:创建窗口

    原文 http://www.johanfalk.eu/blog/sharpdx-tutorial-part-2-creating-a-window 在第二篇教程中,我们将介绍如何创建一个稍后将呈现的简 ...