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. 安装tensorflow遇到:Your CPU supports instructions that this TensorFlow binary was not compiled to use

    为了提升CPU计算速度的.若你有支持cuda的GPU,则可以忽略这个问题,因为安装SSE4.1, SSE4.2, AVX, AVX2, FMA, 仅仅提升CPU的运算速度(大概有3倍). 解决方法: ...

  2. ionic使用CardIO实现扫描银行卡功能(只能扫描16位以下,并且是浮雕数字)

    在一些涉及支付功能的app,一般需要绑定银行卡,除了靠用户手动输入银行卡号,用手机扫描银行卡也是一种常用的手段,查阅了写资料,发现ionic有CardIO插件可以实现这个功能,就兴致冲冲去尝试,结果有 ...

  3. php类知识----特别用法

    spl_autoload_register注册 <?php #spl_autoload_register-----这个例子是用来打印实例化类的类名 function thereisagameof ...

  4. PHP四种基本排序

    1. 冒泡排序 // 1.冒泡排序法 $array = [12,3,23,2,4,1,0]; function maoPao($arr){ //先判断是不是空数组 if(!empty($arr)){ ...

  5. matplotlib中 plt.plot() 函数中**kwargs的参数形式

    plt.plot(x, y, **kwargs) **kwargs的参数大致有如下几种: color: 颜色 linestyle: 线条样式 marker: 标记风格 markerfacecolor: ...

  6. linux 动态库文件stripped属性理解

    [file命令not stripped] UNIX下*.o和*.so文件显示的stripped和not stripped是什么意思? 表示符号表是否被清除. 在centos 6.2下用file命令查看 ...

  7. 删除git的远程分支

    命令:$ git push origin [空格][冒号][需要删除的分支名字] git push origin :dev 删除git的凭证的方法: 控制面板\用户帐户\凭据管理器  --->普 ...

  8. JVM 监控工具——jstack

    [参考文章]:jstack 命令使用经验总结 1. 简介 jstack主要用于生成java虚拟机当前时刻的线程快照. 线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合, 主要目的是定位 ...

  9. mysql5.7以上基本配置

    MySQL表名区分大小写设置 关闭MySQL服务 在服务运行目录找到my.ini或者my.cnf文件 find / -name my.cnf 打开文件,找到[mysqld]在下面增加一行 lower_ ...

  10. Lasso回归总结

    Ridge回归 由于直接套用线性回归可能产生过拟合,我们需要加入正则化项,如果加入的是L2正则化项,就是Ridge回归,有时也翻译为岭回归.它和一般线性回归的区别是在损失函数上增加了一个L2正则化的项 ...