python通过解释器内置的open_Python 之 文件读写的学习
文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容,其中包括两种类型:文本文件和二进制文件。文件读写是Python代码调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西。
文件读写
一、文件的打开(Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”。)
(1)通过解释器内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联,open()函数格式如下:
= open(, )
可以看到,open()函数有两个参数:
文件的保存地址:文件的地址有两种,绝对路径和相对路径。
绝对路径就是文件最完整的路径,相对路径就是相对于当前文件夹的路径,当前文件夹就是你编写的这个py文件所放的文件夹。如果你要打开的文件和open.py在同一个文件夹里,这时只要使用相对路径就行了,而要使用其他文件夹的文件则需使用绝对路径。
不过需要注意的是:\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种形式:
1 open('C:\\Users\\Administrator\\Desktop\\test\\abc.txt')
2 #将'\'替换成'\\'
3
4 open(r'C:\Users\Administrator\Desktop\test\abc.txt')
5 #在路径前加上字母r
打开文件时的模式:open()函数提供7种基本的打开模式。
如果想要读取或者写入的数据不是文本内容,而是音频和图片,可以使用‘rb’模式或者‘wb’模式,因为图片和音频是以二进制的形式保存的。
(2)为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with,例如:
1 #使用open()函数
2 f = open('abc.txt', 'a')
3 f.write('abc')
4 f.close()
5
6 #使用关键字with
7 #with open('文件地址','读写模式') as 变量名:
8
9 with open('abc.txt', 'a') as: #注意冒号:不能丢, 而且对文件进行操作时需要缩进
10 f.write('abc')
11
12 #无需用close()关闭
二、文件的读取
Python提供4个常用的文件内容读取方法:
对文件的读取操作需要将文件中的数据加载到内存中,而上面所用到的read()方法会一次性把文件中所有的内容全部加载到内存中,当遇到一个非常大的文件时,会很容易把内存消耗完,显然是不合理的。所以在读取文件时,通常采用下面两种方法,对文件内容进行逐行处理:
1 #使用readlines()函数
2 f = open('abc.txt', 'r')
3 for line in f.readlines():
4 #处理一行数据
5 f.close()
6
7 #直接遍历文件
8 f = open('abc.txt', 'r')
9 for line in f:
10 #处理一行数据
11 f.close()
三、文件的写入
Python提供3个与文件内容写入有关的方法:
例子如下:
1 ls = ['a', 'b','c']
2 with open('abc.txt', 'w+') as f:
3 f.writelines(ls) #使用writelines()函数后,文件指针会指在写入内容的后面
4 f.seek(0) #使用seek()函数,将文件指针返回文件开头.如果把这行代码注释掉,后面将不会打印出写入的内容
5 for line in f:
6 print(line)
读取excel文件,修改并存为csv文件
需要读入上面的Excel表格,并且将优秀改为90分,良好80分,合格60,不合格0分,最后存为csv文件。如图可以看到这个表格的数据不是很整齐,下面我会使用pandas库处理这个Excel表格。(pandas库的简单使用)
(1)将原表格处理一下
1 import pandas as pd
2 df = pd.read_excel("Python成绩登记信计.xlsx", header=1) #读入excel文件,创建DataFrame实例
3 df.columns = ['序号','一','二','三','四'] #人为设置columns,就是每一列的名字
4 df.set_index('序号', inplace = True) #因为DataFrame有自己的默认索引,这里设置'序号'作为索引
5 df.to_excel("newexcel.xlsx") #保存为新的Excel文件
得到的新表格如下:
(2)修改excel数据,并存为csv文件
1 import pandas as pd
2 df = pd.read_excel("newexcel.xlsx")
3 chg = {'优秀':'90','良好':'80','合格':'60','不合格':'0'} #创建一个对应成绩的字典
4 Grade = df.columns.values[1:] #取出每一列数据的列名
5 for col in Grade:
6 for i in chg:
7 df[col][df[col] == i] = chg[i] #找到col表示的列名的那一列,在该列进行比较
8 df.to_csv("newcsv.csv", index = False, header = True) #保存为csv文件
得到的csv文件如下:
将csv格式文件转换成html文件
pandas库的DataFrame类提供了比较简单的保存为html文件的方法,如下:
1 import pandas as pd
2 df = pd.read_csv("newcsv.csv") #读入csv文件,创建一个DataFrame实例
3 df.to_html("newhtml.html", index = False, header = True) #保存为html格式文件
打开该html文件后,效果如:
运用Python CGI将上面的csv格式文件在网页上显示
由于接下来需要用到CGI的知识,所以我这里给出简单学习CGI的链接。(Python CGI安装教程及简单使用、修改httpd.conf文件参考教程)
安装以及配置完Apache之后,我将我完成的html文件放入文件夹Apache24/htdocs中,用记事本的形式打开这个html文件,得到:
1
2
3
4
序号
5
一
6
二
7
三
8
四
9
10
11
12
13
1
14
0.0
15
90.0
16
80.0
17
80.0
18
19
20
2
21
90.0
22
90.0
23
90.0
24
90.0
25
26
27
3
28
60.0
29
90.0
30
80.0
31
80.0
32
33
34
4
35
0.0
36
90.0
37
90.0
38
80.0
39
40
41
5
42
90.0
43
90.0
44
80.0
45
90.0
46
47
48
6
49
90.0
50
90.0
51
90.0
52
80.0
53
54
55
7
56
90.0
57
90.0
58
80.0
59
90.0
60
61
62
8
63
90.0
64
90.0
65
80.0
66
80.0
67
68
69
9
70
90.0
71
90.0
72
80.0
73
90.0
74
75
76
10
77
90.0
78
90.0
79
90.0
80
90.0
81
82
83
11
84
90.0
85
90.0
86
90.0
87
90.0
88
89
90
12
91
90.0
92
90.0
93
90.0
94
90.0
95
96
97
13
98
80.0
99
60.0
100
90.0
101
90.0
102
103
104
14
105
60.0
106
90.0
107
80.0
108
80.0
109
110
111
15
112
80.0
113
90.0
114
80.0
115
80.0
116
117
118
16
119
0.0
120
0.0
121
0.0
122
0.0
123
124
125
17
126
90.0
127
90.0
128
90.0
129
90.0
130
131
132
18
133
90.0
134
90.0
135
90.0
136
90.0
137
138
139
19
140
90.0
141
90.0
142
90.0
143
90.0
144
145
146
20
147
90.0
148
60.0
149
90.0
150
80.0
151
152
153
21
154
60.0
155
60.0
156
90.0
157
80.0
158
159
160
22
161
60.0
162
90.0
163
90.0
164
80.0
165
166
167
23
168
90.0
169
90.0
170
90.0
171
60.0
172
173
174
24
175
90.0
176
90.0
177
90.0
178
0.0
179
180
181
25
182
80.0
183
90.0
184
90.0
185
90.0
186
187
188
26
189
80.0
190
90.0
191
90.0
192
90.0
193
194
195
27
196
90.0
197
90.0
198
90.0
199
90.0
200
201
202
28
203
90.0
204
0.0
205
90.0
206
80.0
207
208
209
29
210
90.0
211
90.0
212
90.0
213
90.0
214
215
216
30
217
90.0
218
80.0
219
90.0
220
90.0
221
222
223
31
224
80.0
225
90.0
226
90.0
227
80.0
228
229
230
32
231
90.0
232
90.0
233
90.0
234
80.0
235
236
237
33
238
90.0
239
60.0
240
90.0
241
0.0
242
243
244
34
245
90.0
246
90.0
247
90.0
248
80.0
249
250
251
35
252
90.0
253
90.0
254
90.0
255
80.0
256
257
258
36
259
80.0
260
90.0
261
90.0
262
90.0
263
264
265
37
266
60.0
267
80.0
268
80.0
269
80.0
270
271
272
38
273
80.0
274
90.0
275
90.0
276
80.0
277
278
279
39
280
NaN
281
NaN
282
NaN
283
NaN
284
285
286
40
287
NaN
288
NaN
289
NaN
290
NaN
291
292
293
View Code
打开网页,输入http://localhost/newhtml.html,发现网页出现中文乱码,如下:
接着我在百度找到了解决方法,并且对这个html进行了修改,修改为:
1
2
2017中国最好大学排名
3
2017中国最好大学排名
4
5
6
7
序号
8
一
9
二
10
三
11
四
12
13
14
15
16
1
17
0.0
18
90.0
19
80.0
20
80.0
21
22
23
2
24
90.0
25
90.0
26
90.0
27
90.0
28
29
30
3
31
60.0
32
90.0
33
80.0
34
80.0
35
36
37
4
38
0.0
39
90.0
40
90.0
41
80.0
42
43
44
5
45
90.0
46
90.0
47
80.0
48
90.0
49
50
51
6
52
90.0
53
90.0
54
90.0
55
80.0
56
57
58
7
59
90.0
60
90.0
61
80.0
62
90.0
63
64
65
8
66
90.0
67
90.0
68
80.0
69
80.0
70
71
72
9
73
90.0
74
90.0
75
80.0
76
90.0
77
78
79
10
80
90.0
81
90.0
82
90.0
83
90.0
84
85
86
11
87
90.0
88
90.0
89
90.0
90
90.0
91
92
93
12
94
90.0
95
90.0
96
90.0
97
90.0
98
99
100
13
101
80.0
102
60.0
103
90.0
104
90.0
105
106
107
14
108
60.0
109
90.0
110
80.0
111
80.0
112
113
114
15
115
80.0
116
90.0
117
80.0
118
80.0
119
120
121
16
122
0.0
123
0.0
124
0.0
125
0.0
126
127
128
17
129
90.0
130
90.0
131
90.0
132
90.0
133
134
135
18
136
90.0
137
90.0
138
90.0
139
90.0
140
141
142
19
143
90.0
144
90.0
145
90.0
146
90.0
147
148
149
20
150
90.0
151
60.0
152
90.0
153
80.0
154
155
156
21
157
60.0
158
60.0
159
90.0
160
80.0
161
162
163
22
164
60.0
165
90.0
166
90.0
167
80.0
168
169
170
23
171
90.0
172
90.0
173
90.0
174
60.0
175
176
177
24
178
90.0
179
90.0
180
90.0
181
0.0
182
183
184
25
185
80.0
186
90.0
187
90.0
188
90.0
189
190
191
26
192
80.0
193
90.0
194
90.0
195
90.0
196
197
198
27
199
90.0
200
90.0
201
90.0
202
90.0
203
204
205
28
206
90.0
207
0.0
208
90.0
209
80.0
210
211
212
29
213
90.0
214
90.0
215
90.0
216
90.0
217
218
219
30
220
90.0
221
80.0
222
90.0
223
90.0
224
225
226
31
227
80.0
228
90.0
229
90.0
230
80.0
231
232
233
32
234
90.0
235
90.0
236
90.0
237
80.0
238
239
240
33
241
90.0
242
60.0
243
90.0
244
0.0
245
246
247
34
248
90.0
249
90.0
250
90.0
251
80.0
252
253
254
35
255
90.0
256
90.0
257
90.0
258
80.0
259
260
261
36
262
80.0
263
90.0
264
90.0
265
90.0
266
267
268
37
269
60.0
270
80.0
271
80.0
272
80.0
273
274
275
38
276
80.0
277
90.0
278
90.0
279
80.0
280
281
282
39
283
NaN
284
NaN
285
NaN
286
NaN
287
288
289
40
290
NaN
291
NaN
292
NaN
293
NaN
294
295
296
297
View Code
最后结果为:
标签:文件,80.0,Python,90.0,读写,NaN,0.0,60.0
来源: https://www.cnblogs.com/Lincoln-Wong/p/12954914.html
python通过解释器内置的open_Python 之 文件读写的学习相关推荐
- python内置函数open_Python的内置函数open()的注意事项
用法 : open("file_address","open_mode") 例子 : f = open("D:\PycharmProjects\log ...
- Python两个内置函数——locals 和globals
python作用域 http://tgstdj.blog.163.com/blog/static/748200402012419114428813/ 有两种类型的作用域--类的变量和对象的变量. 类的 ...
- python 两个内置函数——locals 和globals(名字空间)批量以自定义变量名创建对象
文章目录 locals 和globals(名字空间)简介 1.局部变量函数locals例子(locals 返回一个名字/值对的字典) 批量创建对象 示例1 示例2 函数内 类内 2.全局变量函数glo ...
- python只能使用内置数据库_隐藏彩蛋:你知道python有一个内置的数据库吗?
本文转载自公众号"读芯术"(ID:AI_Discovery). 如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库--SQLite.它几乎拥有作为一个关系数据 ...
- python中比较重要的几个函数_Python 几个重要的内置函数 python中的内置函数和关键字需要背过吗...
python重要的几个内置函数用法 python内置函数什么用忘不掉的是回忆,继续的是生活,错过的,就当是路过吧.来来往往身边出现很多人,总有一个位置,一直没有变.看看温暖的阳光,偶尔还是会想一想. ...
- python之路——内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- dbeaver无法修改表数据_隐藏彩蛋:你知道python有一个内置的数据库吗?
全文共2520字,预计学习时长7分钟 如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库--SQLite.它几乎拥有作为一个关系数据库所需的所有功能,而且这些有功能都保存在一个文 ...
- 初学者python笔记(内置函数_2)
这篇初学者笔记是接着上一篇初学者python笔记(内置函数_1)的.同样都是介绍Python中那些常用内置函数的. max()和min()的高级用法 我们都知道,max():取最大值,min():取最 ...
最新文章
- 修改服务器端的访问模式,ftp服务器端 修改主动模式
- php接口 汉字出错 空,php接口开发时,数据解析失败问题,字符转义,编码问题(示例代码)...
- Linux常用命令(简单的常用)
- Java 中pdf部分内容加边线_Java 在PDF中添加骑缝章示例解析
- SAP ABAP ALV构建动态输出列与构建动态内表
- 指定的服务器无法运行请求操作_服务器无法正常运行?也许是这3个原因导致的!...
- 博客的起死复生+慎改wdpc端口
- 【已解决】图灵机模型(模拟二进制非负整数加1)
- 线性表(代码、分析、汇编)
- linux 下zip文件的压缩和解压
- Spark streaming细粒度工作原理
- springboot(四)——@EnableConfigurationProperties是如何起作用的你知道吗
- 【tool】kali连接rdp远程桌面
- JAVA 可视化日历
- WPS Office 国际版 添加中文语言包 及相关问题
- Windows DHCP Server不能主动有效释放租约过期IP解决办法
- 基于AT89S52单片机的蘑菇大棚环境监测系统论文(附录代码)
- 几个高斯分布/积分的基本结论和计算
- 软件测试的创新思维,解读测试设计
- myeclipse优化设置