1. 程式人生 > >第一個網頁

第一個網頁

就是 lena java 方式 bar 界面 com ror elif

一、關於文件讀寫的筆記

(一) 文件概述

文件是一個存儲在輔助存儲器上的數據序列,可以包含任何數據內容

文件都是按照2進制進行存儲的,但在表現形式上有2種:文本文件和二進制文件。

1. 文本文件

  文本文件一般由單一特定編碼的字符組成,如utf-8編碼,內容容易統一展示和閱讀,大部分文本文件都可以通過文本編輯軟件和文字處理軟件創建、修改和閱讀,最常見的是txt格式的文本文件。

  文本文件采用文本方式打開時,文件通過編碼形成字符串;采用二進制方式打開時,文件被解析成字節流。由於存在編碼,字符串中的一個字符由兩個字節表示。

2. 二進制文件

  二進制文件直接由比特0和比特1組成,沒有統一字符編碼。二進制文件其實也是常見的,如png格式的圖片文件、avi格式的視頻文件等等。

(二) 文件的使用

文件的使用分為3步:打開文件、讀寫文件、關閉文件。

1. 打開文件

變量名 = open (文件名, 打開模式)

打開模式

說明

r

只讀模式 (默認),文件不存在則返回FileNotFoundError異常

w

覆蓋寫模式,文件不存在則創建,存在則覆蓋寫

x

創建寫模式,文件不存在則創建,存在則返回FileExistsError異常

a

追加寫模式,文件不存在則創建,存在則追加寫

t

文本文件模式 (默認)

b

二進制文件模式

+

在原功能基礎上增加讀寫功能

2. 讀文件

讀文件方法

說明

<file>.read(size=-1)

從文件中讀入所有內容,若有參數,則讀入前size長度的字符串或字節流

<file>.readline(size=-1)

從文件中讀入一行內容,若有參數,則讀入改行前size長度的字符串或字節流

<file>.readlines(hint=-1)

從文件中讀入所有行,以每行為元素形成列表,若有參數,則讀入hint行

3. 寫文件

寫文件方法

說明

<file>.write(s)

向文件中寫入一個字符串或字節流

<file>.writelines(lines)

將一個全為字符串的列表寫入文件

<file>.seek(offset)

改變當前文件操作指針的位置(offset值)
0:文件開頭;1:當前位置;2:文件結尾

4. 關閉文件

變量名.close()

二、將excel文件存為csv文件

  CSV格式(Comma-Separated Values,逗號分隔值)是一種通用的,相對簡單的文件格式,可應用在程序之間轉移表格數據。由此看來,csv格式文件的應用還是很廣大的。

技術分享圖片

技術分享圖片
import pandas as pd
grade = pd.read_excel(r"F:\1.xlsx", sheet_name="Sheet1") # filename為excel表格的文件路徑
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("Python.csv") # csv文件的保存路徑
技術分享圖片

技術分享圖片

三、將csv文件存為html文件

  HTML (Hyper Text Markup Language,超文本標記語言) 是一種用於創建網頁的標準標記語言。HTML是一種基礎技術,常與CSS、JavaScript一起被眾多網站用於設計網頁、網頁應用程序以及移動應用程序的用戶界面。網頁瀏覽器可以讀取HTML文件,並將其渲染成可視化網頁。HTML描述了一個網站的結構語義隨著線索的呈現,使之成為一種標記語言而非編程語言。

技術分享圖片
def fill_data(excel, length=4):
      ‘‘‘
      函數功能:填充表格的一行數據,返回html格式的字符串text
    excel: 表格中的一行數據
     length: 表格中需要填充的數據個數(即列數),默認為4個
     由於生成csv文件時自動增加了1列數據,因此在format()函數從1開始
     ‘‘‘
     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):
     ‘‘‘
     函數功能:打開csv文件並獲取數據,返回文件數據
     csvFile: csv文件的路徑和名稱
     ‘‘‘
     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, HTMLFILE, thNum):
     ‘‘‘
     函數功能:將csv格式文件轉換為html格式文件
     csvFile:  需要打開和讀取數據的csv文件路徑
     HTMLFILE: 保存的html文件路徑
     thNum:    csv文件的列數,需註意其中是否包括csv文件第1列無意義的數據,
     此處包含因此在調用時需要增加1
     ‘‘‘
     # HTML1 HTML2 分別為html文件的首部和尾部
     HTML1 = ‘‘‘
 <!DOCTYPE HTML>\n<html>\n<body>\n<meta charset=gbk2313>
 <h1 align=center>Python成績表</h2>
 <table border=‘blue‘>\n‘‘‘
     HTML2 = "</table>\n</body>\n</html>"     
     csv_list = GetCsv(csvFile)      # 獲得csv文件數據
     hF = open(HTMLFILE, ‘w‘) # 創建html文件
     hF.write(HTML1)                                             # 寫入html文件首部
     for i in range(1, thNum+1):        # 寫入表格的表頭(即第1行)
         hF.write(‘<th width="20%">{}</th>\n‘.format(csv_list[0][i]))
     hF.write("</tr>\n")
     for i in range(1, len(csv_list)):  # 寫入表格的數據,從第2行開始為數據
         hF.write(fill_data(csv_list[i], 5))
     hF.write(HTML2)                                            # 寫入html文件尾部
     hF.close()               # 關閉html文件
 
 CsvToHtml("?D:\python\Python.csv", "?D:\python\Python.html", 5)
技術分享圖片

技術分享圖片

  • 4.運用python CGI把上面的csv格式文件,用網頁顯示

  • CGI(Common Gateway Interface)也叫通用網關接口,它是一個web服務器主機提供信息服務的標準接口,只要遵循這個接口,web服務器就能獲取客戶端提交的信息,轉交給服務端的CGI程序進行處理,然後將處理結果返回給客戶端。CGI通訊是由兩部分組成的:一部分是用戶的瀏覽器顯示的頁面,也就是html頁面,另一部分則是運行在服務器上的CGI程序。
  • 代碼如下:
  • 技術分享圖片
    def fill_data(excel, length=4):
        ‘‘‘
        函數功能:填充表格的一行數據,返回html格式的字符串text
        excel: 表格中的一行數據
        length: 表格中需要填充的數據個數(即列數),默認為4個
        由於生成csv文件時自動增加了1列數據,因此在format()函數從1開始
        ‘‘‘
        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):
        ‘‘‘
        函數功能:打開csv文件並獲取數據,返回文件數據
        csvFile: csv文件的路徑和名稱
        ‘‘‘
        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):
        ‘‘‘
        csvFile:  需要打開和讀取數據的csv文件路徑
        HTMLFILE: 保存的html文件路徑
        thNum:    csv文件的列數,需註意其中是否包括csv文件第1列無意義的數據,
        此處包含因此在調用時需要增加1
        ‘‘‘
        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)):   # 寫表格的數據,從第2行開始為數據
            print(fill_data(csv_list[i], 5))
        print("</table>\n</body>\n</html>") # 寫html文件尾部
    
    CsvToHtml("D:\python\Python.csv", 5)
    技術分享圖片

    技術分享圖片

第一個網頁