Python——自己的第一个网页(文件的使用)

Posted ShadowLand

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python——自己的第一个网页(文件的使用)相关的知识,希望对你有一定的参考价值。

一、文件的学习。

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)。

       https://www.runoob.com/python/file-methods.html  

(I)7种基本的打开模式(mode):

      

 

 

   

(II)4个常用的文件(file)内容读取方法:

      

 

ps:<file>.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()是无效的。

  <file>.seek(offset):改变当前文件操作指针的位置,offset含义如下:0 ——到文件开头;1 ——当前位置;2 ——文件结尾。

  更详细内容请前往菜鸟教程

 

 

 二、读入如下excel文件,并存为csv格式,并把优秀变成90分,良好80分,合格60,不合格0分。(未交的空着)

 

 

 

 

   这里先介绍pandas。pandas是一个Python软件包,提供快速,灵活和富于表现力的数据结构,旨在使使用“关系”或“标记”数据既简单又直观。它是数据处理的一个重要工具。详细pandas介绍和学习

 

给出代码:

import pandas as pd
Original = [\'优秀\',\'良好\',\'合格\',\'不合格\']
Change = [\'90分\',\'80分\',\'60分\',\'0分\']
f = pd.read_excel("D:\\\\桌面\\\\pytest\\\\Python成绩登记信计.xlsx")
for index in range(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提供了完成该转换的方法。

 

import pandas as pd
fo = pd.read_csv("D:\\\\桌面\\\\pytest\\\\Python成绩登记信计.csv")
fo.to_html("D:\\\\桌面\\\\pytest\\\\Python成绩登记信计.html",index = False,header=1)

 

 

 

截图如下:

 

 

四、运用Python CGI把上面的csv格式文件,用网页显示并截屏。

  首先要‘连接’,通过该网站指引完成https://baijiahao.baidu.com/s?id=1608396131352808822&wfr=spider&for=pc

  成功截图:

 

   小编不负责任地将前面的html文件,以笔记本方式打开,获取其HTML代码。如下:

  1 <table border="1" class="dataframe">
  2   <thead>
  3     <tr style="text-align: right;">
  4       <th>Unnamed: 0</th>
  5       <th></th>
  6       <th></th>
  7       <th></th>
  8       <th></th>
  9     </tr>
 10   </thead>
 11   <tbody>
 12     <tr>
 13       <td>序号</td>
 14     </tr>
 15     <tr>
 16       <td>1</td>
 17       <td>0分</td>
 18       <td>90分</td>
 19       <td>80分</td>
 20       <td>80分</td>
 21     </tr>
 22     <tr>
 23       <td>2</td>
 24       <td>90分</td>
 25       <td>90分</td>
 26       <td>90分</td>
 27       <td>90分</td>
 28     </tr>
 29     <tr>
 30       <td>3</td>
 31       <td>60分</td>
 32       <td>90分</td>
 33       <td>80分</td>
 34       <td>80分</td>
 35     </tr>
 36     <tr>
 37       <td>4</td>
 38       <td>0分</td>
 39       <td>90分</td>
 40       <td>90分</td>
 41       <td>80分</td>
 42     </tr>
 43     <tr>
 44       <td>5</td>
 45       <td>90分</td>
 46       <td>90分</td>
 47       <td>80分</td>
 48       <td>90分</td>
 49     </tr>
 50     <tr>
 51       <td>6</td>
 52       <td>90分</td>
 53       <td>90分</td>
 54       <td>90分</td>
 55       <td>80分</td>
 56     </tr>
 57     <tr>
 58       <td>7</td>
 59       <td>90分</td>
 60       <td>90分</td>
 61       <td>80分</td>
 62       <td>90分</td>
 63     </tr>
 64     <tr>
 65       <td>8</td>
 66       <td>90分</td>
 67       <td>90分</td>
 68       <td>80分</td>
 69       <td>80分</td>
 70     </tr>
 71     <tr>
 72       <td>9</td>
 73       <td>90分</td>
 74       <td>90分</td>
 75       <td>80分</td>
 76       <td>90分</td>
 77     </tr>
 78     <tr>
 79       <td>10</td>
 80       <td>90分</td>
 81       <td>90分</td>
 82       <td>90分</td>
 83       <td>90分</td>
 84     </tr>
 85     <tr>
 86       <td>11</td>
 87       <td>90分</td>
 88       <td>90分</td>
 89       <td>90分</td>
 90       <td>90分</td>
 91     </tr>
 92     <tr>
 93       <td>12</td>
 94       <td>90分</td>
 95       <td>90分</td>
 96       <td>90分</td>
 97       <td>90分</td>
 98     </tr>
 99     <tr>
100       <td>13</td>
101       <td>80分</td>
102       <td>60分</td>
103       <td>90分</td>
104       <td>90分</td>
105     </tr>
106     <tr>
107       <td>14</td>
108       <td>60分</td>
109       <td>90分</td>
110       <td>80分</td>
111       <td>80分</td>
112     </tr>
113     <tr>
114       <td>15</td>
115       <td>80分</td>
116       <td>90分</td>
117       <td>80分</td>
118       <td>80分</td>
119     </tr>
120     <tr>
121       <td>16</td>
122       <td>0分</td>
123       <td>0分</td>
124       <td>0分</td>
125       <td>0分</td>
126     </tr>
127     <tr>
128       <td>17</td>
129       <td>90分</td>
130       <td>90分</td>
131       <td>90分</td>
132       <td>90分</td>
133     </tr>
134     <tr>
135       <td>18</td>
136       <td>90分</td>
137       <td>90分</td>
138       <td>90分</td>
139       <td>90分</td>
140     </tr>
141     <tr>
142       <td>19</td>
143       <td>90分</td>
144       <td>90分</td>
145       <td>90分</td>
146       <td>90分</td>
147     </tr>
148     <tr>
149       <td>20</td>
150       <td>90分</td>
151       <td>60分</td>
152       <td>90分</td>
制作自己的第一个网页

自己的第一个网页

自己的第一个网页

自己的第一个网页

自己的第一个网页

手把手教你构建自己的第一个Python包