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

自己 的第一個網頁

nco 格式 保存 excel格式 range tex 操作 and obj

文件操作

一、關於文件讀寫的筆記

(一) 文件概述

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

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

1. 文本文件

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

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

2. 二進制文件

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

(二) 文件的使用

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

1. 打開文件

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

技術分享圖片

技術分享圖片

2. 讀文件

read()方法

read()方法從一個打開的文件中讀取一個字符串。需要重點註意的是,Python字符串可以是二進制數據,而不是僅僅是文字。

語法:

fileObject.read([count])

3. 寫文件

write()方法

write()方法可將任何字符串寫入一個打開的文件。需要重點註意的是,Python字符串可以是二進制數據,而不是僅僅是文字。

write()方法不會在字符串的結尾添加換行符(‘\n‘):

語法:

fileObject.write(string)

4. 關閉文件

變量名.close()

二、將excel文件存為csv文件

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

此處的轉換方式為: 優秀 --> 90,良好 --> 80, (不)合格 --> 60,NaN --> 0

# -*- coding:utf-8
import pandas as pd
def ExcelToCsv_1(StartName, SheetName, EndName):
    
‘‘‘ 函數功能: 將excel格式文件轉換為csv格式文件,使用iat方法 StartName: excel表格的文件路徑 SheetNmae: excel表格中的表格名稱 EndName: csv文件的保存路徑 ‘‘‘ grade = pd.read_excel(StartName, 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(EndName) def ExcelToCsv_2(StartName, SheetName, EndName): ‘‘‘ 函數功能: 將excel格式文件轉換為csv格式文件,使用replace方法 StartName: excel表格的文件路徑 SheetNmae: excel表格中的表格名稱 EndName: csv文件的保存路徑 ‘‘‘ grade = pd.read_excel(StartName, sheet_name=SheetName) Grade = grade.replace("優秀", "90") Grade = Grade.replace("良好", "80") Grade = Grade.replace("不合格", "60") Grade = Grade.replace("合格", "60") Grade = Grade.fillna(value = 0) Grade.to_csv(EndName) ExcelToCsv_2("D:\\Python_1.xlsx", "Sheet1", "D:\\Python_1.csv") ExcelToCsv_1("D:\\Python_2.xlsx", "Sheet1", "D:\\Python_2.csv")

效果:

技術分享圖片

三、將csv文件存為html文件

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

# -*- coding:utf-8
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_2.csv", "D:\\Python_2.html", 5)

效果:

技術分享圖片

  

自己 的第一個網頁