文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容,其中包括两种类型:文本文件和二进制文件。文件读写是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 之 文件读写的学习相关推荐

  1. python内置函数open_Python的内置函数open()的注意事项

    用法 : open("file_address","open_mode") 例子 : f = open("D:\PycharmProjects\log ...

  2. Python两个内置函数——locals 和globals

    python作用域 http://tgstdj.blog.163.com/blog/static/748200402012419114428813/ 有两种类型的作用域--类的变量和对象的变量. 类的 ...

  3. python 两个内置函数——locals 和globals(名字空间)批量以自定义变量名创建对象

    文章目录 locals 和globals(名字空间)简介 1.局部变量函数locals例子(locals 返回一个名字/值对的字典) 批量创建对象 示例1 示例2 函数内 类内 2.全局变量函数glo ...

  4. python只能使用内置数据库_隐藏彩蛋:你知道python有一个内置的数据库吗?

    本文转载自公众号"读芯术"(ID:AI_Discovery). 如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库--SQLite.它几乎拥有作为一个关系数据 ...

  5. python中比较重要的几个函数_Python 几个重要的内置函数 python中的内置函数和关键字需要背过吗...

    python重要的几个内置函数用法 python内置函数什么用忘不掉的是回忆,继续的是生活,错过的,就当是路过吧.来来往往身边出现很多人,总有一个位置,一直没有变.看看温暖的阳光,偶尔还是会想一想. ...

  6. python之路——内置函数和匿名函数

    楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...

  7. 十五. Python基础(15)--内置函数-1

    十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...

  8. dbeaver无法修改表数据_隐藏彩蛋:你知道python有一个内置的数据库吗?

    全文共2520字,预计学习时长7分钟 如果你是软件开发人员,相信你一定知道甚至曾经使用过一个非常轻量级的数据库--SQLite.它几乎拥有作为一个关系数据库所需的所有功能,而且这些有功能都保存在一个文 ...

  9. 初学者python笔记(内置函数_2)

    这篇初学者笔记是接着上一篇初学者python笔记(内置函数_1)的.同样都是介绍Python中那些常用内置函数的. max()和min()的高级用法 我们都知道,max():取最大值,min():取最 ...

最新文章

  1. 修改服务器端的访问模式,ftp服务器端 修改主动模式
  2. php接口 汉字出错 空,php接口开发时,数据解析失败问题,字符转义,编码问题(示例代码)...
  3. Linux常用命令(简单的常用)
  4. Java 中pdf部分内容加边线_Java 在PDF中添加骑缝章示例解析
  5. SAP ABAP ALV构建动态输出列与构建动态内表
  6. 指定的服务器无法运行请求操作_服务器无法正常运行?也许是这3个原因导致的!...
  7. 博客的起死复生+慎改wdpc端口
  8. 【已解决】图灵机模型(模拟二进制非负整数加1)
  9. 线性表(代码、分析、汇编)
  10. linux 下zip文件的压缩和解压
  11. Spark streaming细粒度工作原理
  12. springboot(四)——@EnableConfigurationProperties是如何起作用的你知道吗
  13. 【tool】kali连接rdp远程桌面
  14. JAVA 可视化日历
  15. WPS Office 国际版 添加中文语言包 及相关问题
  16. Windows DHCP Server不能主动有效释放租约过期IP解决办法
  17. 基于AT89S52单片机的蘑菇大棚环境监测系统论文(附录代码)
  18. 几个高斯分布/积分的基本结论和计算
  19. 软件测试的创新思维,解读测试设计
  20. myeclipse优化设置

热门文章

  1. nodeJS之二进制buffer对象
  2. sublime 3 3083验证码
  3. 【Ajax】PHP中ajax的基本知识点
  4. PHP ceil()函数
  5. 在ubuntu 下 编译 在windows 下面使用的adb
  6. 在3D模型上选择顶点
  7. C语言基础知识:printf的输出格式
  8. 【github系列】github上传空目录
  9. python哈姆雷特词频统计_python—文本词频统计 哈姆雷特 txt 下载
  10. sumif三个条件怎么填_玩转excel求和函数,sumif/sumifs常用案例讲解