Python文件读取
一、写入.txt文件
1.数据写入文件
在Python的open函数中,标识符可指定文件打开模式,如果需要将数据写入文件,只需要将标识符设置为写入模式(w)即可。
如果要写入的文件不存在,那么open函数将自动创建文件。要注意的是,如果文件已经存在,那么以写入模式写入文件时会先清空该文件。
>>>file_name = 'words.txt'
>>>f = open(file_name, 'w')
>>>f.write('Hello, world!')
>>>f.close()
在工作目录下打开words.txt文档来查看写入文档的内容。
word.txt
Hello, world! |
标识符w和wb表示写文本文件和写二进制文件(在r后面添加b表示要读二进制数据)。如果需要将数值型数据写入文本文件,必须先用str函数将数值型数据转换为字符串格式。
>>> file_name = 'data.txt'
>>> f = open(file_name, 'w')
>>> data = list(range(1,11))
>>> f.write(data)
Traceback(most recent call last):
File"Ch7_read.py", line 12, in <module>
f.write(data)
TypeError: write() argument must be str, notlist
>>>f.write(str(data))
>>>f.close()
写入内容后可查看写入的文档。
data.txt
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] |
2.使用with语句写入.txt文件
要写入特定编码的文本文件,需要给open函数传入encoding参数,将字符串自动转换成指定编码。默认encoding参数为UTF-8。要读取非UTF-8编码的文本文件,例如读取GBK编码的文件,需要给open函数传入encoding参数。
>>>file_name = 'words.txt'
>>>f = open(file_name, 'w', encoding ='gbk')
>>>f.write('Hello, world!')
3.对文件添加内容
在编写代码时,可能需要给文件添加内容,但不覆盖文件原内容,这时候需要以附加模式(a)打开文件,此时写入的内容会附加到文件末尾,而不会覆盖原内容。
>>>file_name = 'words.txt'
>>>with open(file_name, 'a') as f:
... f.write("What's yourfavourite language?\n")
... f.write('My favouritelanguage is Python too.\n')
将添加的两行字符串附加到文件的末尾。
words.txt
Hello, world! I love Python! What's your favourite language? My favourite language is Python too. |
二、duxi.csv文件
逗号分隔值(Comma-Separated Values,CSV)有时也称为字符分隔值,是一种通用的、相对简单的文件格式,常应用于在程序之间转移表格数据。
.csv文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的分隔符是逗号或制表符。
在编写程序时,可能需要将数据转移到.csv文件里面,此时可以考虑使用Python的内置模块——csv模块。在程序中,用命令import csv可直接调用csv模块进行.csv文件的读写。
1.读取csv数据
在读取csv数据之前,先选择一个用CSV文件格式储存的数据作为演示的例子,这里选择iris数据集。iris数据集即鸢尾花卉数据集,是常用的分类实验数据集,由Fisher在1936年收集整理。数据集包含150个样本,分为3类(Setosa、Versicolour、Virginica),每类50个样本,每个数据包含4个属性——花萼长度、花萼宽度、花瓣长度、花瓣宽度。
读取.csv文件的方法有两种。第一种是使用csv.reader函数,接收一个可迭代的对象(比如.csv文件),能返回一个生成器,从其中解析出csv的内容。
>>>import csv
file_name ='C:\\Users\\45543\\Desktop\\iris.csv'
>>>withopen(file_name, 'r') as f:
... reader = csv.reader(f)
... iris= [iris_item for iris_item in reader]
>>>print(iris)
[['', 'Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width','Species'],
['1', '5.1', '3.5', '1.4', '0.2', 'setosa'],
['2', '4.9', '3', '1.4', '0.2', 'setosa'],
['3', '4.7', '3.2', '1.3', '0.2', 'setosa'],
…]
第二种方法是使用csv.DictReader函数,该函数与csv.reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而字典的键则是这个单元格的标题(即列头)。
>>>import csv
file_name = 'C:\\Users\\45543\\Desktop\\iris.csv'
>>>with open(file_name, 'r') as f:
... reader = csv.DictReader(f)
... iris1 = [iris_item foriris_item in reader]
>>>print(iris1)
[OrderedDict([('', '1'), ('Sepal.Length', '5.1'),('Sepal.Width', '3.5'), ('Petal.Length', '1.4'), ('Petal.Width', '0.2'),('Species', 'setosa')]),
OrderedDict([('', '2'), ('Sepal.Length', '4.9'),('Sepal.Width', '3'), ('Petal.Length', '1.4'), ('Petal.Width', '0.2'),('Species', 'setosa')]),
OrderedDict([('', '3'), ('Sepal.Length', '4.7'),('Sepal.Width', '3.2'), ('Petal.Length', '1.3'), ('Petal.Width', '0.2'),('Species', 'setosa')]),…]
如果用csv.DictReader函数读取.csv文件的某一列,则可以用列的标题(Sepal.Length)查询。
>>>with open(file_name, 'r') as f:
... reader = csv.DictReader(f)
... column = [iris_item['Sepal.Length'] for iris_item in reader]
>>>print(column)
['5.1', '4.9', '4.7', '4.6', '5', '5.4',…]
2.写入.csv文件
对于列表形式的数据,除了csv.write函数外,还需要用到writerow函数将数据逐行写入.csv文件。利用csv.write函数将数据写入.csv文件的示例代码。
>>>import csv
file_name ='C:\\Users\\45543\\Desktop\\test.csv'
>>>with open(file_name, 'w', newline = '') as f:
... write_csv = csv.writer(f)
... write_csv.writerow(iris)
至于字典形式的数据,csv模块提供了csv.DictWriter函数,除了提供open函数的参数外,还需要输入字典所有键的数据,然后通过writeheader函数在文件内添加标题,标题内容与键一致,最后使用writerows函数将字典内容写入文件。
>>>import csv
file_name ='C:\\Users\\45543\\Desktop\\test.csv'
>>>my_key = [] # 键的集合
>>>for i in iris1[0].keys():
... my_key.append(i)
>>>with open(file_name, 'w', newline = '') as f:
... write_csv = csv.DictWriter(f, my_key)
... write_csv.writeheader() # 输入标题
... write_csv.writerows(iris1) # 输入数据
文章未经博主同意,禁止转载!
Python文件读取相关推荐
- python读取文件读不出来-python文件读取失败怎么处理
在读取文件时候比如读取 xxx.csv 时候 可能报编码错误 类似于 'xxx' codec can't decode byte 0xac in position 211: illegal multi ...
- python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法
python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...
- python文件读取操作练习题(统计单词)
python文件读取操作练习题(统计单词) 学习路线:python的文件读取基础入门(read(),readlines(),with.open()) ->python文件读取操作练习题(统计单词 ...
- python文件读取数据-Python从文件中读取数据
一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...
- 一文贯通python文件读取
不论是数据分析还是机器学习,乃至于高大上的AI,数据源的获取是所有过程的入口. 数据源的存在形式多为数据库或者文件,如果把数据看做一种特殊格式的文件的话,即所有数据源都是文件.获得数据,就是读取文件的 ...
- 一文贯通python文件读取 1
版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载. https://blog.csdn.net/wireless_com/article/details ...
- python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别
r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...
- 【python文件读取】加密数据的读取
问题引出 当我们程序中要用到账号,密码等一些敏感信息时,别人一眼就能看得到这些信息的时候,该怎么操作才能避免敏感信息被泄露呢?对了,我们不妨把信息写到文件里,通过获取文件中设定好的数据来起到数据保密的 ...
- python文件读取方法read(size)的含义是_Python file read()方法
在计算机中,文件包括了文档.图片.视频.程序组件等,每个类型的文件都有不同的作用或功用.例如一个程序通常由主程序.动态库.配置文件等组成,这些也是文件,起到支持程序运行的作用.想要使用文件,第一个操作 ...
- python文件读取下一个字符_python文件的读写总结
读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...
最新文章
- Linux C/C++解析xls
- java中重载与重写的区别
- 华为突遭谷歌釜底抽薪!官方安卓不再支持华为手机
- scikit-learn 入门
- 非使用FindControl方法找到深层嵌套的控件
- c#日期转换周几_C#中获取任意日期为星期几三种方法分享
- HTML+CSS制作彩色波动
- 制作U盘安装UBUNTU
- 视频压缩工具及使用方法
- 八爪鱼怎样导入mysql_八爪鱼采集数据导出sqlserver数据库(手动、自动两种方式) - 八爪鱼采集器...
- 微信小程序|智能停车系统中车牌计费功能实现
- 计算机信息安全技术分为两个层次,计算机信息安全技术分为两个层次,其中的第二层次为()...
- java for循环
- js获取android系统版本号,JS获取系统版本和手机型号
- 实时爬取斗鱼直播时的弹幕消息
- Ordered Fractions
- linux分析gre中断问题,linux – 无法删除GRE隧道
- [200902] 条件概率与独立事件
- 嵌入式 C语言/C++ 常见笔试、面试题 难疑点汇总(经典100道)
- Android新闻客户端实训-Day1类Day2接口基操