一、写入.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文件读取相关推荐

  1. python读取文件读不出来-python文件读取失败怎么处理

    在读取文件时候比如读取 xxx.csv 时候 可能报编码错误 类似于 'xxx' codec can't decode byte 0xac in position 211: illegal multi ...

  2. python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法

    python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...

  3. python文件读取操作练习题(统计单词)

    python文件读取操作练习题(统计单词) 学习路线:python的文件读取基础入门(read(),readlines(),with.open()) ->python文件读取操作练习题(统计单词 ...

  4. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

  5. 一文贯通python文件读取

    不论是数据分析还是机器学习,乃至于高大上的AI,数据源的获取是所有过程的入口. 数据源的存在形式多为数据库或者文件,如果把数据看做一种特殊格式的文件的话,即所有数据源都是文件.获得数据,就是读取文件的 ...

  6. 一文贯通python文件读取 1

    版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载. https://blog.csdn.net/wireless_com/article/details ...

  7. python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别

    r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...

  8. 【python文件读取】加密数据的读取

    问题引出 当我们程序中要用到账号,密码等一些敏感信息时,别人一眼就能看得到这些信息的时候,该怎么操作才能避免敏感信息被泄露呢?对了,我们不妨把信息写到文件里,通过获取文件中设定好的数据来起到数据保密的 ...

  9. python文件读取方法read(size)的含义是_Python file read()方法

    在计算机中,文件包括了文档.图片.视频.程序组件等,每个类型的文件都有不同的作用或功用.例如一个程序通常由主程序.动态库.配置文件等组成,这些也是文件,起到支持程序运行的作用.想要使用文件,第一个操作 ...

  10. python文件读取下一个字符_python文件的读写总结

    读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘, ...

最新文章

  1. Linux C/C++解析xls
  2. java中重载与重写的区别
  3. 华为突遭谷歌釜底抽薪!官方安卓不再支持华为手机
  4. scikit-learn 入门
  5. 非使用FindControl方法找到深层嵌套的控件
  6. c#日期转换周几_C#中获取任意日期为星期几三种方法分享
  7. HTML+CSS制作彩色波动
  8. 制作U盘安装UBUNTU
  9. 视频压缩工具及使用方法
  10. 八爪鱼怎样导入mysql_八爪鱼采集数据导出sqlserver数据库(手动、自动两种方式) - 八爪鱼采集器...
  11. 微信小程序|智能停车系统中车牌计费功能实现
  12. 计算机信息安全技术分为两个层次,计算机信息安全技术分为两个层次,其中的第二层次为()...
  13. java for循环
  14. js获取android系统版本号,JS获取系统版本和手机型号
  15. 实时爬取斗鱼直播时的弹幕消息
  16. Ordered Fractions
  17. linux分析gre中断问题,linux – 无法删除GRE隧道
  18. [200902] 条件概率与独立事件
  19. 嵌入式 C语言/C++ 常见笔试、面试题 难疑点汇总(经典100道)
  20. Android新闻客户端实训-Day1类Day2接口基操

热门文章

  1. 华为手机开启手机找回,被锁。
  2. rstp edgeport
  3. 第16节 最好的实践(16.1~16.5)
  4. nios自学笔记三:nios常用外设C函数整理
  5. 沃尔沃升级刷藏功能取消限速180km解除行车播放视频关闭自动启停系统
  6. 时间--cd //lastyear
  7. 尚硅谷算法与数据结构学习笔记05 -- 递归
  8. 诈金花游戏单机版 附开源地址
  9. Element日期选择器带快捷选项切换日期
  10. 编写1个JSP页面,在JSP页面中使用Java程序片输出26个小写的英文字母表。