一、文件的学习。
1、概述。
文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。
2、类型。
文件包括两种类型:文本文件和二进制文件。
二进制文件和文本文件最主要的区别在于是否有统一的字符编码。<二进制文件直接由比特0和比特1组成,没有统一字符编码>
下面运行代码直观感受一下二者的区别:
textFile = open("D:\\桌面\\pytest\\test.txt","rt",encoding="utf-8") #t表示文本文件方式
print(textFile.readline())
textFile.close()
binFile= open("D:\\桌面\\pytest\\test.txt","rb") #b表示二进制文件方式
print(binFile.readline())
binFile.close()
结果如下:
世事一场大梦,人生几度秋凉?
b'\xe4\xb8\x96\xe4\xba\x8b\xe4\xb8\x80\xe5\x9c\xba\xe5\xa4\xa7\xe6\xa2\xa6\xef\xbc\x8c\xe4\xba\xba\xe7\x94\x9f\xe5\x87\xa0\xe5\xba\xa6\xe7\xa7\x8b\xe5\x87\x89\xef\xbc\x9f'
3、方法学习。
(1)open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
open(file, mode='r')
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
(I)7种基本的打开模式(mode):
(II)4个常用的文件(file)内容读取方法:
ps:.readlines()读入的每一行内容都包括‘\n’字符(即列表中包括‘\n’)如
f = open("D:\\桌面\\pytest\\test.txt", "r",encoding="utf-8")print(f.readlines(1))
f.close()
(III)File对象的属性。
属性描述
file.closed
返回true如果文件已被关闭,否则返回false。
file.mode
返回被打开文件的访问模式。
file.name
返回文件的名称。
测试:
f = open("D:\\桌面\\pytest\\test.txt", "w")print ("文件名:", f.name)print ("是否已关闭 :", f.closed)print ("访问模式 :", f.mode)
f.close()print ("是否已关闭 :", f.closed)
打印结果:
(2)close()方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。
fileObject.close()
在对文件操作完成后,将文件关闭是对文件的一种尊重,也是对电脑资源的减负。
(3) write()方法 可将任何字符串写入一个打开的文件。
fileObject.write(string)
注意:Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符('\n')。
4、文件定位。
在读写一行字符后,文件操作指针就处于该行的末尾,再次操作也只能对此位置后面的内容进行操作。
比如对一个文件进行追写(“w+”)操作后------此时操作指针在文件末尾------想读取追写后的整个文件,此时用.readlinds()是无效的。
.seek(offset):改变当前文件操作指针的位置,offset含义如下:0 ——到文件开头;1 ——当前位置;2 ——文件结尾。
二、读入如下excel文件,并存为csv格式,并把优秀变成90分,良好80分,合格60,不合格0分。(未交的空着)
这里先介绍pandas。pandas是一个Python软件包,提供快速,灵活和富于表现力的数据结构,旨在使使用“关系”或“标记”数据既简单又直观。它是数据处理的一个重要工具。
给出代码:
importpandas as pd
Original= ['优秀','良好','合格','不合格']
Change= ['90分','80分','60分','0分']
f= pd.read_excel("D:\\桌面\\pytest\\Python成绩登记信计.xlsx")for index inrange(len(f.index)):for i in range(4):
f.iloc[index]=f.iloc[index].replace(Original[i],Change[i])
f.to_csv("D:\\桌面\\pytest\\Python成绩登记信计.csv",index = False,header=1)
输出结果如下:
三、把上述csv格式文件转换为html文件。
pandas提供了完成该转换的方法。
importpandas as pd
fo= pd.read_csv("D:\\桌面\\pytest\\Python成绩登记信计.csv")
fo.to_html("D:\\桌面\\pytest\\Python成绩登记信计.html",index = False,header=1)
截图如下:
四、运用Python CGI把上面的csv格式文件,用网页显示并截屏。
成功截图:
小编不负责任地将前面的html文件,以笔记本方式打开,获取其HTML代码。如下:
1
2
3
4
Unnamed: 05
一6
二7
三8
四9
10
11
12
13
序号14
15
16
117
0分18
90分19
80分20
80分21
22
23
224
90分25
90分26
90分27
90分28
29
30
331
60分32
90分33
80分34
80分35
36
37
438
0分39
90分40
90分41
80分42
43
44
545
90分46
90分47
80分48
90分49
50
51
652
90分53
90分54
90分55
80分56
57
58
759
90分60
90分61
80分62
90分63
64
65
866
90分67
90分68
80分69
80分70
71
72
973
90分74
90分75
80分76
90分77
78
79
1080
90分81
90分82
90分83
90分84
85
86
1187
90分88
90分89
90分90
90分91
92
93
1294
90分95
90分96
90分97
90分98
99
100
13101
80分102
60分103
90分104
90分105
106
107
14108
60分109
90分110
80分111
80分112
113
114
15115
80分116
90分117
80分118
80分119
120
121
16122
0分123
0分124
0分125
0分126
127
128
17129
90分130
90分131
90分132
90分133
134
135
18136
90分137
90分138
90分139
90分140
141
142
19143
90分144
90分145
90分146
90分147
148
149
20150
90分151
60分152
90分153
80分154
155
156
21157
60分158
60分159
90分160
80分161
162
163
22164
60分165
90分166
90分167
80分168
169
170
23171
90分172
90分173
90分174
60分175
176
177
24178
90分179
90分180
90分181
0分182
183
184
25185
80分186
90分187
90分188
90分189
190
191
26192
80分193
90分194
90分195
90分196
197
198
27199
90分200
90分201
90分202
90分203
204
205
28206
90分207
0分208
90分209
80分210
211
212
29213
90分214
90分215
90分216
90分217
218
219
30220
90分221
80分222
90分223
90分224
225
226
31227
80分228
90分229
90分230
80分231
232
233
32234
90分235
90分236
90分237
80分238
239
240
33241
90分242
60分243
90分244
0分245
246
247
34248
90分249
90分250
90分251
80分252
253
254
35255
90分256
90分257
90分258
80分259
260
261
36262
80分263
90分264
90分265
90分266
267
268
37269
60分270
80分271
80分272
80分273
274
275
38276
80分277
90分278
90分279
80分280
281
282
39283
284
285
286
287
288
289
40290
291
292
293
294
295
296
View Code
然后用print()编写一个test.py文件,代码如下:
1 #test.py
2 #-*- coding:utf-8 -*-
3 print('''
4
Unnamed: 0 | 一 | 二 | 三 | 四 |
---|---|---|---|---|
序号 | ||||
1 | 0分 | 90分 | 80分 | 80分 |
2 | 90分 | 90分 | 90分 | 90分 |
3 | 60分 | 90分 | 80分 | 80分 |
4 | 0分 | 90分 | 90分 | 80分 |
5 | 90分 | 90分 | 80分 | 90分 |
6 | 90分 | 90分 | 90分 | 80分 |
7 | 90分 | 90分 | 80分 | 90分 |
8 | 90分 | 90分 | 80分 | 80分 |
9 | 90分 | 90分 | 80分 | 90分 |
10 | 90分 | 90分 | 90分 | 90分 |
11 | 90分 | 90分 | 90分 | 90分 |
12 | 90分 | 90分 | 90分 | 90分 |
13 | 80分 | 60分 | 90分 | 90分 |
14 | 60分 | 90分 | 80分 | 80分 |
15 | 80分 | 90分 | 80分 | 80分 |
16 | 0分 | 0分 | 0分 | 0分 |
17 | 90分 | 90分 | 90分 | 90分 |
18 | 90分 | 90分 | 90分 | 90分 |
19 | 90分 | 90分 | 90分 | 90分 |
20 | 90分 | 60分 | 90分 | 80分 |
21 | 60分 | 60分 | 90分 | 80分 |
22 | 60分 | 90分 | 90分 | 80分 |
23 | 90分 | 90分 | 90分 | 60分 |
24 | 90分 | 90分 | 90分 | 0分 |
25 | 80分 | 90分 | 90分 | 90分 |
26 | 80分 | 90分 | 90分 | 90分 |
27 | 90分 | 90分 | 90分 | 90分 |
28 | 90分 | 0分 | 90分 | 80分 |
29 | 90分 | 90分 | 90分 | 90分 |
30 | 90分 | 80分 | 90分 | 90分 |
31 | 80分 | 90分 | 90分 | 80分 |
32 | 90分 | 90分 | 90分 | 80分 |
33 | 90分 | 60分 | 90分 | 0分 |
34 | 90分 | 90分 | 90分 | 80分 |
35 | 90分 | 90分 | 90分 | 80分 |
36 | 80分 | 90分 | 90分 | 90分 |
37 | 60分 | 80分 | 80分 | 80分 |
38 | 80分 | 90分 | 90分 | 80分 |
39 | ||||
40 |
View Code
将该文件移到cgi-bin文件下,在cmd连接后,在网页链接输入‘localhost:8001/cgi-bin/test.py',呈现如下:
当然这不是真正的CGI编程,详细请了解。