• 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'xe4xb8x96xe4xbax8bxe4xb8x80xe5x9cxbaxe5xa4xa7xe6xa2xa6xefxbcx8cxe4xbaxbaxe7x94x9fxe5x87xa0xe5xbaxa6xe7xa7x8bxe5x87x89xefxbcx9f'

    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()读入的每一行内容都包括‘ ’字符(即列表中包括‘ ’)如

    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()方法不会在字符串的结尾添加换行符(' ')。 

    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>
    153       <td>80分</td>
    154     </tr>
    155     <tr>
    156       <td>21</td>
    157       <td>60分</td>
    158       <td>60分</td>
    159       <td>90分</td>
    160       <td>80分</td>
    161     </tr>
    162     <tr>
    163       <td>22</td>
    164       <td>60分</td>
    165       <td>90分</td>
    166       <td>90分</td>
    167       <td>80分</td>
    168     </tr>
    169     <tr>
    170       <td>23</td>
    171       <td>90分</td>
    172       <td>90分</td>
    173       <td>90分</td>
    174       <td>60分</td>
    175     </tr>
    176     <tr>
    177       <td>24</td>
    178       <td>90分</td>
    179       <td>90分</td>
    180       <td>90分</td>
    181       <td>0分</td>
    182     </tr>
    183     <tr>
    184       <td>25</td>
    185       <td>80分</td>
    186       <td>90分</td>
    187       <td>90分</td>
    188       <td>90分</td>
    189     </tr>
    190     <tr>
    191       <td>26</td>
    192       <td>80分</td>
    193       <td>90分</td>
    194       <td>90分</td>
    195       <td>90分</td>
    196     </tr>
    197     <tr>
    198       <td>27</td>
    199       <td>90分</td>
    200       <td>90分</td>
    201       <td>90分</td>
    202       <td>90分</td>
    203     </tr>
    204     <tr>
    205       <td>28</td>
    206       <td>90分</td>
    207       <td>0分</td>
    208       <td>90分</td>
    209       <td>80分</td>
    210     </tr>
    211     <tr>
    212       <td>29</td>
    213       <td>90分</td>
    214       <td>90分</td>
    215       <td>90分</td>
    216       <td>90分</td>
    217     </tr>
    218     <tr>
    219       <td>30</td>
    220       <td>90分</td>
    221       <td>80分</td>
    222       <td>90分</td>
    223       <td>90分</td>
    224     </tr>
    225     <tr>
    226       <td>31</td>
    227       <td>80分</td>
    228       <td>90分</td>
    229       <td>90分</td>
    230       <td>80分</td>
    231     </tr>
    232     <tr>
    233       <td>32</td>
    234       <td>90分</td>
    235       <td>90分</td>
    236       <td>90分</td>
    237       <td>80分</td>
    238     </tr>
    239     <tr>
    240       <td>33</td>
    241       <td>90分</td>
    242       <td>60分</td>
    243       <td>90分</td>
    244       <td>0分</td>
    245     </tr>
    246     <tr>
    247       <td>34</td>
    248       <td>90分</td>
    249       <td>90分</td>
    250       <td>90分</td>
    251       <td>80分</td>
    252     </tr>
    253     <tr>
    254       <td>35</td>
    255       <td>90分</td>
    256       <td>90分</td>
    257       <td>90分</td>
    258       <td>80分</td>
    259     </tr>
    260     <tr>
    261       <td>36</td>
    262       <td>80分</td>
    263       <td>90分</td>
    264       <td>90分</td>
    265       <td>90分</td>
    266     </tr>
    267     <tr>
    268       <td>37</td>
    269       <td>60分</td>
    270       <td>80分</td>
    271       <td>80分</td>
    272       <td>80分</td>
    273     </tr>
    274     <tr>
    275       <td>38</td>
    276       <td>80分</td>
    277       <td>90分</td>
    278       <td>90分</td>
    279       <td>80分</td>
    280     </tr>
    281     <tr>
    282       <td>39</td>
    283       <td> </td>
    284       <td> </td>
    285       <td> </td>
    286       <td> </td>
    287     </tr>
    288     <tr>
    289       <td>40</td>
    290       <td> </td>
    291       <td> </td>
    292       <td> </td>
    293       <td> </td>
    294     </tr>
    295   </tbody>
    296 </table>
    View Code

      然后用print()编写一个test.py文件,代码如下:

      1 #test.py
      2 #-*- coding:utf-8 -*-
      3 print('''
      4 <table border="1" class="dataframe">
      5   <thead>
      6     <tr style="text-align: right;">
      7       <th>Unnamed: 0</th>
      8       <th>一</th>
      9       <th>二</th>
     10       <th>三</th>
     11       <th>四</th>
     12     </tr>
     13   </thead>
     14   <tbody>
     15     <tr>
     16       <td>序号</td>
     17     </tr>
     18     <tr>
     19       <td>1</td>
     20       <td>0分</td>
     21       <td>90分</td>
     22       <td>80分</td>
     23       <td>80分</td>
     24     </tr>
     25     <tr>
     26       <td>2</td>
     27       <td>90分</td>
     28       <td>90分</td>
     29       <td>90分</td>
     30       <td>90分</td>
     31     </tr>
     32     <tr>
     33       <td>3</td>
     34       <td>60分</td>
     35       <td>90分</td>
     36       <td>80分</td>
     37       <td>80分</td>
     38     </tr>
     39     <tr>
     40       <td>4</td>
     41       <td>0分</td>
     42       <td>90分</td>
     43       <td>90分</td>
     44       <td>80分</td>
     45     </tr>
     46     <tr>
     47       <td>5</td>
     48       <td>90分</td>
     49       <td>90分</td>
     50       <td>80分</td>
     51       <td>90分</td>
     52     </tr>
     53     <tr>
     54       <td>6</td>
     55       <td>90分</td>
     56       <td>90分</td>
     57       <td>90分</td>
     58       <td>80分</td>
     59     </tr>
     60     <tr>
     61       <td>7</td>
     62       <td>90分</td>
     63       <td>90分</td>
     64       <td>80分</td>
     65       <td>90分</td>
     66     </tr>
     67     <tr>
     68       <td>8</td>
     69       <td>90分</td>
     70       <td>90分</td>
     71       <td>80分</td>
     72       <td>80分</td>
     73     </tr>
     74     <tr>
     75       <td>9</td>
     76       <td>90分</td>
     77       <td>90分</td>
     78       <td>80分</td>
     79       <td>90分</td>
     80     </tr>
     81     <tr>
     82       <td>10</td>
     83       <td>90分</td>
     84       <td>90分</td>
     85       <td>90分</td>
     86       <td>90分</td>
     87     </tr>
     88     <tr>
     89       <td>11</td>
     90       <td>90分</td>
     91       <td>90分</td>
     92       <td>90分</td>
     93       <td>90分</td>
     94     </tr>
     95     <tr>
     96       <td>12</td>
     97       <td>90分</td>
     98       <td>90分</td>
     99       <td>90分</td>
    100       <td>90分</td>
    101     </tr>
    102     <tr>
    103       <td>13</td>
    104       <td>80分</td>
    105       <td>60分</td>
    106       <td>90分</td>
    107       <td>90分</td>
    108     </tr>
    109     <tr>
    110       <td>14</td>
    111       <td>60分</td>
    112       <td>90分</td>
    113       <td>80分</td>
    114       <td>80分</td>
    115     </tr>
    116     <tr>
    117       <td>15</td>
    118       <td>80分</td>
    119       <td>90分</td>
    120       <td>80分</td>
    121       <td>80分</td>
    122     </tr>
    123     <tr>
    124       <td>16</td>
    125       <td>0分</td>
    126       <td>0分</td>
    127       <td>0分</td>
    128       <td>0分</td>
    129     </tr>
    130     <tr>
    131       <td>17</td>
    132       <td>90分</td>
    133       <td>90分</td>
    134       <td>90分</td>
    135       <td>90分</td>
    136     </tr>
    137     <tr>
    138       <td>18</td>
    139       <td>90分</td>
    140       <td>90分</td>
    141       <td>90分</td>
    142       <td>90分</td>
    143     </tr>
    144     <tr>
    145       <td>19</td>
    146       <td>90分</td>
    147       <td>90分</td>
    148       <td>90分</td>
    149       <td>90分</td>
    150     </tr>
    151     <tr>
    152       <td>20</td>
    153       <td>90分</td>
    154       <td>60分</td>
    155       <td>90分</td>
    156       <td>80分</td>
    157     </tr>
    158     <tr>
    159       <td>21</td>
    160       <td>60分</td>
    161       <td>60分</td>
    162       <td>90分</td>
    163       <td>80分</td>
    164     </tr>
    165     <tr>
    166       <td>22</td>
    167       <td>60分</td>
    168       <td>90分</td>
    169       <td>90分</td>
    170       <td>80分</td>
    171     </tr>
    172     <tr>
    173       <td>23</td>
    174       <td>90分</td>
    175       <td>90分</td>
    176       <td>90分</td>
    177       <td>60分</td>
    178     </tr>
    179     <tr>
    180       <td>24</td>
    181       <td>90分</td>
    182       <td>90分</td>
    183       <td>90分</td>
    184       <td>0分</td>
    185     </tr>
    186     <tr>
    187       <td>25</td>
    188       <td>80分</td>
    189       <td>90分</td>
    190       <td>90分</td>
    191       <td>90分</td>
    192     </tr>
    193     <tr>
    194       <td>26</td>
    195       <td>80分</td>
    196       <td>90分</td>
    197       <td>90分</td>
    198       <td>90分</td>
    199     </tr>
    200     <tr>
    201       <td>27</td>
    202       <td>90分</td>
    203       <td>90分</td>
    204       <td>90分</td>
    205       <td>90分</td>
    206     </tr>
    207     <tr>
    208       <td>28</td>
    209       <td>90分</td>
    210       <td>0分</td>
    211       <td>90分</td>
    212       <td>80分</td>
    213     </tr>
    214     <tr>
    215       <td>29</td>
    216       <td>90分</td>
    217       <td>90分</td>
    218       <td>90分</td>
    219       <td>90分</td>
    220     </tr>
    221     <tr>
    222       <td>30</td>
    223       <td>90分</td>
    224       <td>80分</td>
    225       <td>90分</td>
    226       <td>90分</td>
    227     </tr>
    228     <tr>
    229       <td>31</td>
    230       <td>80分</td>
    231       <td>90分</td>
    232       <td>90分</td>
    233       <td>80分</td>
    234     </tr>
    235     <tr>
    236       <td>32</td>
    237       <td>90分</td>
    238       <td>90分</td>
    239       <td>90分</td>
    240       <td>80分</td>
    241     </tr>
    242     <tr>
    243       <td>33</td>
    244       <td>90分</td>
    245       <td>60分</td>
    246       <td>90分</td>
    247       <td>0分</td>
    248     </tr>
    249     <tr>
    250       <td>34</td>
    251       <td>90分</td>
    252       <td>90分</td>
    253       <td>90分</td>
    254       <td>80分</td>
    255     </tr>
    256     <tr>
    257       <td>35</td>
    258       <td>90分</td>
    259       <td>90分</td>
    260       <td>90分</td>
    261       <td>80分</td>
    262     </tr>
    263     <tr>
    264       <td>36</td>
    265       <td>80分</td>
    266       <td>90分</td>
    267       <td>90分</td>
    268       <td>90分</td>
    269     </tr>
    270     <tr>
    271       <td>37</td>
    272       <td>60分</td>
    273       <td>80分</td>
    274       <td>80分</td>
    275       <td>80分</td>
    276     </tr>
    277     <tr>
    278       <td>38</td>
    279       <td>80分</td>
    280       <td>90分</td>
    281       <td>90分</td>
    282       <td>80分</td>
    283     </tr>
    284     <tr>
    285       <td>39</td>
    286       <td> </td>
    287       <td> </td>
    288       <td> </td>
    289       <td> </td>
    290     </tr>
    291     <tr>
    292       <td>40</td>
    293       <td> </td>
    294       <td> </td>
    295       <td> </td>
    296       <td> </td>
    297     </tr>
    298   </tbody>
    299 </table>
    300 ''')
    View Code

      将该文件移到cgi-bin文件下,在cmd连接后,在网页链接输入‘localhost:8001/cgi-bin/test.py',呈现如下:

       当然这不是真正的CGI编程,详细请了解

     

  • 相关阅读:
    第十六章 Centos7下Docker安装GitLab
    第二十六章 Kubeadm方式搭建kubernetes高可用集群
    第二十五章 Kubernetes部署Promethus集群资源监控
    小程序遮罩层效果实现
    docker停止所有,删除容器命令
    sp欢迎页支持
    c#学习
    静态资源访问前缀
    webjar使用
    springboot静态资源配置原理
  • 原文地址:https://www.cnblogs.com/nicefurmine/p/12939639.html
Copyright © 2020-2023  润新知