自己的第一个网站
一、文件读写的读书笔记。
1.Python对文本文件和二进制文件采用统一的操作步骤,即“打开-操作-关闭”。
2.Python打开文件的函数:open()函数格式如下: <变量名> = open(<文件名>, <打开模式>)
3.Python提供4个常用的文件内容读取方法。
4.文件的遍历代码:
1 fname = input("请输入要打开的文件: ") 2 fo = open(fname, "r") 3 for line in fo: 4 print(line) 5 fo.close()
5.文件的打印代码:
1 fname = input("请输入要打开的文件: ") 2 fo = open(fname, "r") 3 for line in fo.readlines(): 4 print(line) 5 fo.close()
6.Python提供3个与文件内容写入。
二、Excel文件转为CSV格式文件。
1. Excel文件转换为CSV文件,并以CSV文件形式改变部分数据并输出结果。
1 import pandas as pd 2 def xlsx_to_csv_pd(): 3 data_xls = pd.read_excel('F:\Python成绩登记信计.xlsx', index_col=0) 4 data_xls.to_csv('F:\Python成绩登记信计.csv', encoding='utf-8') 5 if __name__ == '__main__': 6 xlsx_to_csv_pd() 7 fo=open("F:\Python成绩登记信计.csv",'r',encoding='utf-8') 8 ls=[] 9 for line in fo: 10 line = line.replace('\n','').replace('优秀','90').replace('良好','80').replace('不合格','0') 11 line = line.replace('合格','60') 12 ls = line.split(',') 13 lns='' 14 for s in ls: 15 lns+="{}\t".format(s) 16 print(lns)
2.打开Excel文件改变部分数据并转换为CSV文件。
import pandas as pd def ExcelTurnCsv(Startfile, SheetName, Endfile): ''' 函数功能: 将excel格式文件转换为csv格式文件,使用iat方法 Startfile: excel表格的文件路径 SheetNmae: excel表格中的表格名称 Endfile: csv文件的保存路径 ''' grade = pd.read_excel(Startfile, sheet_name=SheetName) for i in range(len(grade.index)): for j in range(1, len(grade.columns)): if grade.iloc[i, j] == '优秀': grade.iat[i, j] = 90 elif grade.iloc[i, j] == '良好': grade.iat[i, j] = 80 elif grade.iloc[i, j] == '合格': grade.iat[i, j] = 60 else: grade.iat[i, j] = 0 grade.to_csv(Endfile) ExcelTurnCsv("F:\\Python成绩登记信计.xlsx", "Sheet1", "F:\\Python成绩登记信计.csv")
三、CSV文件转为HTML文件。
import pandas as pd df = pd.read_csv('F:\Python成绩登记信计.csv') print(df.to_html()) df.to_html('F:\Python成绩登记信计.html')
<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>Unnamed: 0</th> <th>Unnamed: 0.1</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>0</td> <td>序号</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> </tr> <tr> <th>1</th> <td>1</td> <td>1</td> <td>0</td> <td>90</td> <td>80</td> <td>80</td> </tr> <tr> <th>2</th> <td>2</td> <td>2</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>3</th> <td>3</td> <td>3</td> <td>60</td> <td>90</td> <td>80</td> <td>80</td> </tr> <tr> <th>4</th> <td>4</td> <td>4</td> <td>0</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>5</th> <td>5</td> <td>5</td> <td>90</td> <td>90</td> <td>80</td> <td>90</td> </tr> <tr> <th>6</th> <td>6</td> <td>6</td> <td>90</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>7</th> <td>7</td> <td>7</td> <td>90</td> <td>90</td> <td>80</td> <td>90</td> </tr> <tr> <th>8</th> <td>8</td> <td>8</td> <td>90</td> <td>90</td> <td>80</td> <td>80</td> </tr> <tr> <th>9</th> <td>9</td> <td>9</td> <td>90</td> <td>90</td> <td>80</td> <td>90</td> </tr> <tr> <th>10</th> <td>10</td> <td>10</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>11</th> <td>11</td> <td>11</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>12</th> <td>12</td> <td>12</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>13</th> <td>13</td> <td>13</td> <td>80</td> <td>60</td> <td>90</td> <td>90</td> </tr> <tr> <th>14</th> <td>14</td> <td>14</td> <td>60</td> <td>90</td> <td>80</td> <td>80</td> </tr> <tr> <th>15</th> <td>15</td> <td>15</td> <td>80</td> <td>90</td> <td>80</td> <td>80</td> </tr> <tr> <th>16</th> <td>16</td> <td>16</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> </tr> <tr> <th>17</th> <td>17</td> <td>17</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>18</th> <td>18</td> <td>18</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>19</th> <td>19</td> <td>19</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>20</th> <td>20</td> <td>20</td> <td>90</td> <td>60</td> <td>90</td> <td>80</td> </tr> <tr> <th>21</th> <td>21</td> <td>21</td> <td>60</td> <td>60</td> <td>90</td> <td>80</td> </tr> <tr> <th>22</th> <td>22</td> <td>22</td> <td>60</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>23</th> <td>23</td> <td>23</td> <td>90</td> <td>90</td> <td>90</td> <td>60</td> </tr> <tr> <th>24</th> <td>24</td> <td>24</td> <td>90</td> <td>90</td> <td>90</td> <td>0</td> </tr> <tr> <th>25</th> <td>25</td> <td>25</td> <td>80</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>26</th> <td>26</td> <td>26</td> <td>80</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>27</th> <td>27</td> <td>27</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>28</th> <td>28</td> <td>28</td> <td>90</td> <td>0</td> <td>90</td> <td>80</td> </tr> <tr> <th>29</th> <td>29</td> <td>29</td> <td>90</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>30</th> <td>30</td> <td>30</td> <td>90</td> <td>80</td> <td>90</td> <td>90</td> </tr> <tr> <th>31</th> <td>31</td> <td>31</td> <td>80</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>32</th> <td>32</td> <td>32</td> <td>90</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>33</th> <td>33</td> <td>33</td> <td>90</td> <td>60</td> <td>90</td> <td>0</td> </tr> <tr> <th>34</th> <td>34</td> <td>34</td> <td>90</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>35</th> <td>35</td> <td>35</td> <td>90</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>36</th> <td>36</td> <td>36</td> <td>80</td> <td>90</td> <td>90</td> <td>90</td> </tr> <tr> <th>37</th> <td>37</td> <td>37</td> <td>60</td> <td>80</td> <td>80</td> <td>80</td> </tr> <tr> <th>38</th> <td>38</td> <td>38</td> <td>80</td> <td>90</td> <td>90</td> <td>80</td> </tr> <tr> <th>39</th> <td>39</td> <td>39</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> </tr> <tr> <th>40</th> <td>40</td> <td>40</td> <td>0</td> <td>0</td> <td>0</td> <td>0</td> </tr> </tbody> </table>
四、用Python CGI转为网页显示。
1.Web 服务器支持及配置
在你进行 CGI 编程前,确保您的 Web 服务器支持 CGI 及已经配置了 CGI 的处理程序。
Apache 支持 CGI 配置:
设置好CGI目录:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
所有的HTTP服务器执行 CGI 程序都保存在一个预先配置的目录。这个目录被称为 CGI 目录,并按照惯例,它被命名为 /var/www/cgi-bin 目录。
CGI 文件的扩展名为 .cgi,python 也可以使用 .py 扩展名。
默认情况下,Linux 服务器配置运行的 cgi-bin 目录中为 /var/www。
如果你想指定其他运行 CGI 脚本的目录,可以修改 httpd.conf 配置文件,如下所示:
<Directory "/var/www/cgi-bin"> AllowOverride None Options +ExecCGI Order allow,deny Allow from all </Directory>
在 AddHandler 中添加 .py 后缀,这样我们就可以访问 .py 结尾的 python 脚本文件:
AddHandler cgi-script .cgi .pl .py
2.web服务器搭建
(1)首先,在你的电脑里找一个目录,新建一个文件夹,叫做“www”,在“www”文件夹下面新建一个目录,叫做“cgi-bin”,我直接建立在了d盘的根目录下
(2)然后win+cmd打开命令行
def fill_data(excel, length=4): text = '<tr>' for i in range(length): tmp = '<td align="center">{}</td>'.format(excel[i+1]) text += tmp text += "</tr>\n" return text def GetCsv(csvFile): ls = [] csv = open(csvFile, 'r',encoding="utf-8") for line in csv: line = line.replace('\n', '') ls.append(line.split(',')) return ls def CsvToHtml(csvFile, thNum): csv_list = GetCsv(csvFile) # 获得csv文件数据 print("Content-type:text/html\r\n\r\n") print(''' <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gbk2313> <h1 align=center>Python成绩登记信计</h2> <table border='blue'>\n''') # 写html文件首部 for i in range(1, thNum+1): # 写表格的表头(即第1行) print('<th width="20%">{}</th>'.format(csv_list[0][i])) print("</tr>\n") for i in range(1, len(csv_list)): # print(fill_data(csv_list[i], 5)) print("</table>\n</body>\n</html>") # 写html文件尾部 CsvToHtml("F://Python成绩登记信计.csv", 5)