1、 文件的使用:文件打开、关闭和读写

python通过open函数打开一个文件,并返回一个操作文件的变量,语法形式如下:

<变量名>=open(<文件路劲及文件名>,<打开模式>)

open()函数提供其中7种基本的打开模式,如下:

“r”:只读模式,如果文件不存在,则返回异常filenotfounderror,默认值。

“w”:覆盖写模式,文件不存在则创建,存在则完全覆盖源文件。

“x”:创建写模式,文件不存在则创建,存在则返回异常fileexistserror。

“a”:追加写模式,文件不存在则创建,存在则在原文件最后追加内容。

“b”:二进制文本模式。

“t”:文本文件模式。

“+”:与r/w/a一同使用,在原有的功能上同时增加读写功能。

文件使用结束后要用close()方法关闭文件,释放文件的使用授权,语法如下:

<变量名>.close()

根据打开的方式不同,文件读写也会根据文本文件或者二进制打开方式有所不同,python语言有4个文件内容读取方法。

f.read():从文件中读入整个文件内容。

f.readline():从文件中读入一行内容。

f.readlines():从文件中读入所有行内容。

f.seek(offset):改变当前文件操作指针的位置,0-文件的开头;1-文件的当前位置;2-文件的结尾。

根据文件的写入方式不同,有两种方法:

f.write(s):向文件中写入一个字符串或者字节流。

f.writelines(lines):将一个元素为字符串的列表写入文件。

一维数据的处理:表示、存储、处理

一维数据是最简单的数据组织类型,由于是线性结构,在python中主要采用列表形式表示。

一维数据的文件存储有多种方式,例如采用分隔元素,采用逗号,采用换行符等等。

一般的,通过.join()方法将各元素表示为字符串,进行文件写入:通过字符串.split()方法分解各元素,从文件中读入一维数据。使用遍历循环对一维数据各元素进行操作。

二维数据的处理:表示、存储、处理

二维数据处理等同于二维列表的操作,一般需要借助两层循环遍历实现对每个数据的处理,基本代码格式如下:

for row in ls:
for item in row:
<对第row行第item列元素处理>

采用CSV格式对一二维数据文件进行读写

逗号分隔的存储格式叫csv格式文件,它是一种通用的、相对简单的文件格式。

一维数据保存成csv格式后,各元素采用逗号分隔,形成一行。

二维数据由一维数据组成,csv文件的每一行是一维数据,整个csv文件是二维数据。

以二维为例,从csv格式文件中读入数据并将其表示为二维列表对象的方法如下,其中data.csv可以为任意csv文件的事例。

f=open("data.csv","r")
ls=[]
for line in f:
ls.append(line.strip('\n').split(","))
f.close()

将二维列表数据写入csv文件的方法如下:

f=open("data.csv","w") #假设data.csv文件已经存在。
for row in ls:
f.write(",".join(row)+"\n")
f.close()

python计算机二级考试知识点——文件操作的更多相关文章

  1. (Python )格式化输出、文件操作、json

    本节学习Python的格式化输出,文件操作以及json的简单用法 1.格式化输出 将非字符串类型转换成字符串,可以使用函数:str() 或者repr() ,(这两个函数的区别目前我还没搞懂,求解答) ...

  2. Python——Day3知识点——文件操作

    一.打开文件 文件句柄 = open('文件路径', '模式') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ...

  3. python基础(三)-- 文件操作

    一. 文件操作: 对文件操作流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 现有文件如下 : Somehow, it seems the love I kn ...

  4. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  5. python基础 (编码进阶,文件操作和深浅copy)

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码. 即先将其他编码的字符串解码(decode)成unicode,再从uni ...

  6. Python全栈工程师(文件操作、编码)

    ParisGabriel                每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰     Python人工智能从入门到精通 最近简直要死了 发烧感冒 喉咙痛..... ...

  7. python3速查参考- python基础 5 -> 常用的文件操作

    文件的打开方式 打开方式 详细释义 r  以只读方式打开文件.文件的指针会放在文件的开头.这是默认模式. rb  以二进制只读方式打开一个文件.文件指针会放在文件的开头. r+  以读写方式打开一个文 ...

  8. python基础--字符编码以及文件操作

    字符编码: 1.运行程序的三个核心硬件:cpu.内存.硬盘 任何一个程序要是想要运算,肯定是先从硬盘加载到当前的内存中,然后cpu根据指定的指令去执行操作 2.python解释器运行一个py文件的步骤 ...

  9. Python 实现隐藏文件夹、文件操作

    Python通过win32api 可以实现操作文件夹文件操作,获取属性,修改属性 1.获取属性 通过win32api.GetFileAttributes 方法可以获取属性值 import win32c ...

随机推荐

  1. u-boot-2018.09 DTS上 I2C节点的解析 (转)

    这篇理下uboot上I2C总线挂载设备的整个流程. 其他总线(如SPI等)应是类同的思路. uboot 中,以max8997挂载到s3c24xx i2c总线为例, dts里面的写法如下 aliases ...

  2. 【算法学习笔记】RMQ问题与ST表

    \(0.\) RMQ问题 P1816 人话翻译 给定一个长度为\(n\)的数列\(a\),然后有\(m\)组询问,每次询问一个区间\([l,r]\)的最小值. 其中\(m,n\leq10^5\) \( ...

  3. js栈和堆的区别

    一.  堆(heap)和栈(stack) 栈(stack)会自动分配内存空间,会自动释放.堆(heap)动态分配的内存,大小不定也不会自动释放. 二.  基本类型和引用类型 基本类型:简单的数据段,存 ...

  4. curses is not supported on this machine:(curses 在pycharm(Windows)中的安装 )

    curse在Windows下的pycharm中安装,curse是不能直接在Windows下跑的.需要安装相关环境,要根据直接project的编译器版本来选择下载相关的whl. 找到project的Sc ...

  5. 【winfrom-多语言】实现多语言切换:使用资源文件

    使用资源文件实现多语言切换. 1. 新建一个Form,名为FrmMain. 在界面添加一个MenuStrip和一个Button. 并设置好控件的文本和位置.(Language=(Default)) 2 ...

  6. 主流包管理工具npm、yarn、cnpm、pnpm之间的区别与联系——原理篇

    接触 node 之后,一直使用npm包管理工具, cnpm 一开始会用一些,但是并没有觉得比 npm 快得多,使用 cnpm 的时候还经常安装不成功,只能再用 npm 安装一遍,渐渐的就弃用了 cnp ...

  7. luogu【模板】线性筛素数 (Miller-Rabin素数测试模板)

    这个感觉还是挺好理解的,就是复杂度证明看不懂~ Code: #include <cstdio> #include <algorithm> #include <cstrin ...

  8. [HEOI2016&TJOI2016] 排序(线段树)

    4552: [Tjoi2016&Heoi2016]排序 Time Limit: 60 Sec  Memory Limit: 256 MBSubmit: 2703  Solved: 1386[S ...

  9. 征途堆积出友情的永恒「堆优化dp」

    直接写题解: 很简单的dp暴力转移式子:f[i]=MAX{f[j]+max(tax[j],sum[i]-sum[j])} 观察式子,只有一个变量sum[i]; 而其他都为定量; 则考虑维护 两个定量: ...

  10. Apache Ranger && HDFS

    Apache Ranger && HDFS 标签(空格分隔): Hadoop HDFS HDFS对于任何Hadoop大数据平台来说都是核心组成部分,为了加强对Hadoop平台的数据保护 ...