<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
資料處理是 Python 的一大應用場景,而 Excel 又是當前最流行的資料處理軟體。因此用 Python 進行資料處理時,很容易會和 Excel 打起交道。得益於前人的辛勤勞作,Python 處理 Excel 已有很多現成的輪子,比如 xlrd & xlwt & xlutils 、 XlsxWriter 、 OpenPyXL ,而在 Windows 平臺上可以直接呼叫 Microsoft Excel 的開放介面,這些都是比較常用的工具,還有其他一些優秀的工具這裡就不一一介紹,接下來我們通過一個表格展示各工具之間的特點:
型別 | xlrd&xlwt&xlutils | XlsxWriter | OpenPyXL | Excel開放介面 |
---|---|---|---|---|
讀取 | 支援 | 不支援 | 支援 | 支援 |
寫入 | 支援 | 支援 | 支援 | 支援 |
修改 | 支援 | 不支援 | 支援 | 支援 |
xls | 支援 | 不支援 | 不支援 | 支援 |
xlsx | 高版本 | 支援 | 支援 | 支援 |
大檔案 | 不支援 | 支援 | 支援 | 不支援 |
效率 | 快 | 快 | 快 | 超慢 |
功能 | 較弱 | 強大 | 一般 | 超強大 |
以上可以根據需求不同,選擇合適的工具,現在為大家主要介紹下最常用的 xlrd & xlwt & xlutils 系列工具的使用。
xlrd&xlwt&xlutils 是由以下三個庫組成:
安裝比較簡單,直接用 pip 工具安裝三個庫即可,安裝命令如下:
$ pip install xlrd xlwt xlutils
接下來我們就從寫入 Excel 開始,話不多說直接看程式碼如下:
# 匯入 xlwt 庫 import xlwt # 建立 xls 檔案物件 wb = xlwt.Workbook() # 新增兩個表單頁 sh1 = wb.add_sheet('成績') sh2 = wb.add_sheet('彙總') # 然後按照位置來新增資料,第一個引數是行,第二個引數是列 # 寫入第一個sheet sh1.write(0, 0, '姓名') sh1.write(0, 1, '專業') sh1.write(0, 2, '科目') sh1.write(0, 3, '成績') sh1.write(1, 0, '張三') sh1.write(1, 1, '資訊與通訊工程') sh1.write(1, 2, '數值分析') sh1.write(1, 3, 88) sh1.write(2, 0, '李四') sh1.write(2, 1, '物聯網工程') sh1.write(2, 2, '數位訊號處理分析') sh1.write(2, 3, 95) sh1.write(3, 0, '王華') sh1.write(3, 1, '電子與通訊工程') sh1.write(3, 2, '模糊數學') sh1.write(3, 3, 90) # 寫入第二個sheet sh2.write(0, 0, '總分') sh2.write(1, 0, 273) # 最後儲存檔案即可 wb.save('test.xls')
執行程式碼,結果會看到生成名為 test.xls 的 Excel 檔案,開啟檔案檢視如下圖所示:
以上就是寫入 Excel 的程式碼,是不是很簡單,下面我們再來看下讀取 Excel 該如何操作。
讀取 Excel 其實也不難,請看如下程式碼:
# 匯入 xlrd 庫 import xlrd # 開啟剛才我們寫入的 test_w.xls 檔案 wb = xlrd.open_workbook("test_w.xls") # 獲取並列印 sheet 數量 print( "sheet 數量:", wb.nsheets) # 獲取並列印 sheet 名稱 print( "sheet 名稱:", wb.sheet_names()) # 根據 sheet 索引獲取內容 sh1 = wb.sheet_by_index(0) # 或者 # 也可根據 sheet 名稱獲取內容 # sh = wb.sheet_by_name('成績') # 獲取並列印該 sheet 行數和列數 print( u"sheet %s 共 %d 行 %d 列" % (sh1.name, sh1.nrows, sh1.ncols)) # 獲取並列印某個單元格的值 print( "第一行第二列的值為:", sh1.cell_value(0, 1)) # 獲取整行或整列的值 rows = sh1.row_values(0) # 獲取第一行內容 cols = sh1.col_values(1) # 獲取第二列內容 # 列印獲取的行列值 print( "第一行的值為:", rows) print( "第二列的值為:", cols) # 獲取單元格內容的資料型別 print( "第二行第一列的值型別為:", sh1.cell(1, 0).ctype) # 遍歷所有表單內容 for sh in wb.sheets(): for r in range(sh.nrows): # 輸出指定行 print( sh.row(r))
輸出如下結果:
細心的朋友可能注意到,這裡我們可以獲取到單元格的型別,上面我們讀取型別時獲取的是數位1,那1表示什麼型別,又都有什麼型別呢?別急下面我們通過一個表格展示下:
數值 | 型別 | 說明 |
---|---|---|
0 | empty | 空 |
1 | string | 字串 |
2 | number | 數位 |
3 | date | 日期 |
4 | boolean | 布林值 |
5 | error | 錯誤 |
通過上面表格,我們可以知道剛獲取單元格型別返回的數位1對應的就是字串型別。
上面說了寫入和讀取 Excel 內容,接下來我們就說下更新修改 Excel 該如何操作,修改時就需要用到 xlutils 中的方法了。直接上程式碼,來看下最簡單的修改操作:
# 匯入相應模組 import xlrd from xlutils.copy import copy # 開啟 excel 檔案 readbook = xlrd.open_workbook("test_w.xls") # 複製一份 wb = copy(readbook) # 選取第一個表單 sh1 = wb.get_sheet(0) # 在第五行新增寫入資料 sh1.write(4, 0, '王歡') sh1.write(4, 1, '通訊工程') sh1.write(4, 2, '機器學習') sh1.write(4, 3, 89) # 選取第二個表單 sh1 = wb.get_sheet(1) # 替換總成績資料 sh1.write(1, 0, 362) # 儲存 wb.save('test.xls')
從上面程式碼可以看出,這裡的修改 Excel 是通過 xlutils 庫的 copy 方法將原來的 Excel 整個複製一份,然後再做修改操作,最後再儲存。 看下修改結果如下:
在平時我們使用 Excel 時會對資料進行一下格式化,或者樣式設定,在這裡把上面介紹寫入的程式碼簡單修改下,使輸出的格式稍微改變一下,程式碼如下:
# 匯入 xlwt 庫 import xlwt # 設定寫出格式字型紅色加粗 styleBR = xlwt.easyxf('font: name Times New Roman, color-index red, bold on') # 設定數位型格式為小數點後保留兩位 styleNum = xlwt.easyxf(num_format_str='#,##0.00') # 設定日期型格式顯示為YYYY-MM-DD styleDate = xlwt.easyxf(num_format_str='YYYY-MM-DD') # 建立 xls 檔案物件 wb = xlwt.Workbook() # 新增兩個表單頁 sh1 = wb.add_sheet('成績') sh2 = wb.add_sheet('彙總') # 然後按照位置來新增資料,第一個引數是行,第二個引數是列 sh1.write(0, 0, '姓名', styleBR) # 設定表頭字型為紅色加粗 sh1.write(0, 1, '日期', styleBR) # 設定表頭字型為紅色加粗 sh1.write(0, 2, '成績', styleBR) # 設定表頭字型為紅色加粗 # 插入資料 sh1.write(1, 0, '張三',) sh1.write(1, 1, '2020-07-01', styleDate) sh1.write(1, 2, 90, styleNum) sh1.write(2, 0, '李四') sh1.write(2, 1, '2020-08-02') sh1.write(2, 2, 95, styleNum) # 設定單元格內容居中的格式 alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_CENTER style = xlwt.XFStyle() style.alignment = alignment # 合併A4,B4單元格,並將內容設定為居中 sh1.write_merge(3, 3, 0, 1, '總分', style) # 通過公式,計算C2+C3單元格的和 sh1.write(3, 2, xlwt.Formula("C2+C3")) # 對 sheet2 寫入資料 sh2.write(0, 0, '總分', styleBR) sh2.write(1, 0, 185) # 最後儲存檔案即可 wb.save('test.xls')
輸出結果:
可以看出,使用程式碼我們可以對字型,顏色、對齊、合併等平時 Excel 的操作進行設定,也可以格式化日期和數位型別的資料。當然了這裡只是介紹了部分功能,不過這已經足夠我們日常使用了,想了解更多功能操作可以參考官網。
python-excel官網:www.python-excel.org/
處理 Word 需要用到 python-docx 庫,目前版本為 0.8.10 ,執行如下安裝命令:
$ pip install python-docx ################# 執行結果 ################ C:UsersY>pip install python-docx Looking in indexes: https://pypi.doubanio.com/simple Collecting python-docx Downloading https://pypi.doubanio.com/packages/e4/83/c66a1934ed5ed8ab1dbb9931f1779079f8bca0f6bbc5793c06c4b5e7d671/python-docx-0.8.10.tar.gz (5.5MB) |████████████████████████████████| 5.5MB 3.2MB/s Requirement already satisfied: lxml>=2.3.2 in c:usersyappdatalocalprogramspythonpython37libsite-packages (from python-docx) (4.5.0) Building wheels for collected packages: python-docx Building wheel for python-docx (setup.py) ... done Created wheel for python-docx: filename=python_docx-0.8.10-cp37-none-any.whl size=184496 sha256=7ac76d3eec848a255b4f197d07e7b78ab33598c814d536d9b3c90b5a3e2a57fb Stored in directory: C:UsersYAppDataLocalpipCachewheels 57d71bb534b75918095724d0342119154c3d0fc035cedfe2f6c9a6c Successfully built python-docx Installing collected packages: python-docx Successfully installed python-docx-0.8.10
OK,如果提示以上資訊則安裝成功。
平時我們在操作 Word 寫檔案的時候,一般分為幾部分:標題、章節、段落、圖片、表格、參照以及專案符號編號等。下面我們就按這幾部分如何用 Python 操作來一一介紹。
標題
檔案標題建立比較簡單,通過 Document() 建立出一個空白檔案,只要呼叫 add_heading 方法就能建立標題。
# 匯入庫 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn # 新建空白檔案 doc1 = Document() # 新增檔案標題 doc1.add_heading('如何使用 Python 建立和操作 Word',0) # 儲存檔案 doc1.save('word1.docx')
這樣就完成了建立檔案和文章標題的操作,下面執行程式,會生成名為 word1.docx 的檔案,開啟文章顯示如下圖所示:
章節與段落
有了文章標題,下面我們來看章節和段落是怎麼操作的,在上面程式碼後面增加章節和段落操作的程式碼如下:
# 匯入庫 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn # 新建空白檔案 doc1 = Document() # 新增檔案標題 doc1.add_heading('如何使用 Python 建立和操作 Word',0) # 建立段落描述 doc1.add_paragraph(' Word 檔案在我們現在的生活和工作中都用的比較多,我們平時都使用 wps 或者 office 來對 Word 進行處理,可能沒想過它可以用 Python 生成,下面我們就介紹具體如何操作……') # 建立一級標題 doc1.add_heading('安裝 python-docx 庫',1) # 建立段落描述 doc1.add_paragraph('現在開始我們來介紹如何安裝 python-docx 庫,具體需要以下兩步操作:') # 建立二級標題 doc1.add_heading('第一步:安裝 Python',2) # 建立段落描述 doc1.add_paragraph('在python官網下載python安裝包進行安裝。') # 建立三級標題 doc1.add_heading('第二步:安裝 python-docx 庫',3) # 建立段落描述 doc1.add_paragraph('window下win+R輸入CMD開啟命令列,輸入pip install python-docx即可下載。') # 儲存檔案 doc1.save('word2.docx')
上面我們說了 add_heading 方法用來增加文章標題,不過通過上面程式碼我們能知道,這個方法的第二個引數為數位,其實這個就是用來標示幾級標題的,在我們平時就用來標示章節。add_paragraph 方法則是用來在文章中增加段落的, 執行程式看下效果:
字型和參照
前面我們通過 add_paragraph 方法增加了三個段落,現在我們就看下如何對段落中字型如何操作,以及參照段落的操作。繼續修改以上程式碼,增加對文章字型字號、加粗、傾斜等操作,具體程式碼如下:
# 匯入庫 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn from docx.shared import RGBColor # 新建空白檔案 doc1 = Document() # 新增檔案標題 doc1.add_heading('如何使用 Python 建立和操作 Word',0) # 建立段落描述 doc1.add_paragraph(' Word 檔案在我們現在的生活和工作中都用的比較多,我們平時都使用 wps 或者 office 來對 Word 進行處理,可能沒想過它可以用 Python 生成,下面我們就介紹具體如何操作……') # 建立一級標題 doc1.add_heading('安裝 python-docx 庫',1) # 建立段落描述 doc1.add_paragraph('現在開始我們來介紹如何安裝 python-docx 庫,具體需要以下兩步操作:') # 建立二級標題 doc1.add_heading('第一步:安裝 Python',2) # 建立段落描述 doc1.add_paragraph('在python官網下載python安裝包進行安裝。') # 建立三級標題 doc1.add_heading('第二步:安裝 python-docx 庫',3) # 建立段落描述 doc1.add_paragraph('window下win+R輸入CMD開啟命令列,輸入pip install python-docx即可下載。') # 建立段落,新增檔案內容 paragraph = doc1.add_paragraph('這是第二步的安裝描述!') # 段落中增加文字,並設定字型字號 run = paragraph.add_run('(注意:這裡設定了字號為20)') run.font.size = Pt(20) # 設定英文字型 run = doc1.add_paragraph('這裡設定英文字型:').add_run('This Font is Times New Roman ') run.font.name = 'Times New Roman' # 設定中文字型 run = doc1.add_paragraph('這裡設定中文字型:').add_run('當前字型為黑體') run.font.name='黑體' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), '黑體') # 設定斜體 run = doc1.add_paragraph('這段設定:').add_run('文字的是斜體 ') run.italic = True # 設定粗體 run = doc1.add_paragraph('這段再設定:').add_run('這裡設定粗體').bold = True # 設定字型帶下劃線 run = doc1.add_paragraph('這段為下劃線:').add_run('這裡設定帶下劃線').underline = True # 設定字型顏色 run = doc1.add_paragraph('這段字型為紅色:').add_run('這裡設定字型為紅色') run.font.color.rgb = RGBColor(0xFF, 0x00, 0x00) # 增加參照 doc1.add_paragraph('這裡是我們參照的一段話:用Python改變人生,改變世界,FIGHTING。', style='Intense Quote') # 儲存檔案 doc1.save('word2.docx')
上面程式碼主要是針對段落字型的各種設定,每段程式碼都標有註釋應該比較容易理解, 執行程式看下效果:
專案列表
我們平時在使用 Word 時,為了能展示更清晰,會用到專案符號和編號,將內容通過列表的方式展示出來,下面我們新建一個檔案 word1.py 並編寫如下程式碼:
# 匯入庫 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn # 新建檔案 doc2 = Document() doc2.add_paragraph('哪個不是動物:') # 增加無序列表 doc2.add_paragraph( '蘋果', style='List Bullet' ) doc2.add_paragraph( '喜洋洋', style='List Bullet' ) doc2.add_paragraph( '懶洋洋', style='List Bullet' ) doc2.add_paragraph( '沸洋洋', style='List Bullet' ) doc2.add_paragraph( '灰太狼', style='List Bullet' ) doc2.add_paragraph('2020年度計劃:') # 增加有序列表 doc2.add_paragraph( 'CSDN達到部落格專家', style='List Number' ) doc2.add_paragraph( '每週健身三天', style='List Number' ) doc2.add_paragraph( '每天學習一個新知識點', style='List Number' ) doc2.add_paragraph( '學習50本書', style='List Number' ) doc2.add_paragraph( '減少加班時間', style='List Number' ) # 儲存檔案 doc2.save('word1.docx')
圖片和表格
我們平時編輯文章時,插入圖片和表格也是經常使用到的,那用 Python 該如何操作插入圖片和表格?首先我們隨便找了個圖片,我這用了 Python的logo 標誌圖,檔名為 python-logo.png,利用add_picture新增圖片;利用add_table新增表格,然後在 word1.py 檔案中增加如下程式碼:
# 匯入庫 from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn # 新建檔案 doc2 = Document() doc2.add_paragraph('哪個不是動物:') # 增加無序列表 doc2.add_paragraph( '蘋果', style='List Bullet' ) doc2.add_paragraph( '喜洋洋', style='List Bullet' ) doc2.add_paragraph( '懶洋洋', style='List Bullet' ) doc2.add_paragraph( '沸洋洋', style='List Bullet' ) doc2.add_paragraph( '灰太狼', style='List Bullet' ) doc2.add_paragraph('2020年度計劃:') # 增加有序列表 doc2.add_paragraph( 'CSDN達到部落格專家', style='List Number' ) doc2.add_paragraph( '每週健身三天', style='List Number' ) doc2.add_paragraph( '每天學習一個新知識點', style='List Number' ) doc2.add_paragraph( '學習50本書', style='List Number' ) doc2.add_paragraph( '減少加班時間', style='List Number' ) doc2.add_heading('圖片',2) # 增加影象 doc2.add_picture('C:/Users/Y/Pictures/python-logo.png', width=Inches(5.5)) doc2.add_heading('表格',2) # 增加表格,這是表格頭 table = doc2.add_table(rows=1, cols=4) hdr_cells = table.rows[0].cells hdr_cells[0].text = '編號' hdr_cells[1].text = '姓名' hdr_cells[2].text = '職業' # 這是表格資料 records = ( (1, '張三', '電工'), (2, '張五', '老闆'), (3, '馬六', 'IT'), (4, '李四', '工程師') ) # 遍歷資料並展示 for id, name, work in records: row_cells = table.add_row().cells row_cells[0].text = str(id) row_cells[1].text = name row_cells[2].text = work # 手動增加分頁 doc2.add_page_break() # 儲存檔案 doc2.save('word1.docx')
上面寫了很多用 Python 建立空白 Word 檔案格式化字型並儲存到檔案中,接下來我們再簡單介紹下如何讀取已有的 Word 檔案,請看如下程式碼:
# 引入庫 from docx import Document # 開啟檔案1 doc1 = Document('word1.docx') # 讀取每段內容 pl = [ paragraph.text for paragraph in doc1.paragraphs] print('###### 輸出word1文章的內容 ######') # 輸出讀取到的內容 for i in pl: print(i) # 開啟檔案2 doc2 = Document('word2.docx') print('n###### 輸出word2文章內容 ######') pl2 = [ paragraph.text for paragraph in doc2.paragraphs] # 輸出讀取到的內容 for j in pl2: print(j) # 讀取表格材料,並輸出結果 tables = [table for table in doc2.tables] for table in tables: for row in table.rows: for cell in row.cells: print (cell.text,end=' ') print() print('n')
以上程式碼是將之前我們輸出的兩個檔案內容都讀取出來,當然這裡只是列印到控制檯,並沒有做其他處理。現在我們執行看下結果:
CSV
CSV 全稱 Comma-Separated Values,中文叫逗號分隔值或字元分隔值,它以純文字形式儲存表格資料(數位和文字),其本質就是一個字元序列,可以由任意數目的記錄組成,記錄之間以某種換行符分隔,每條記錄由欄位組成,通常所有記錄具有完全相同的欄位序列,欄位間常用逗號或製表符進行分隔。CSV 檔案格式簡單、通用,在現實中有著廣泛的應用,其中使用最多的是在程式之間轉移表格資料。
CSV 與 Excel
因為 CSV 檔案與 Excel 檔案預設都是用 Excel 工具開啟,那他們有什麼區別呢?我們通過下表簡單瞭解一下。
Python 通過 csv 模組來實現 CSV 格式檔案中資料的讀寫,該模組提供了相容 Excel 方式輸出、讀取資料檔案的功能,這樣我們無需知道 Excel 所採用 CSV 格式的細節,同樣的它還可以定義其他應用程式可用的或特定需求的 CSV 格式。
csv 模組中使用 reader 類和 writer 類讀寫序列化的資料,使用 DictReader 類和 DictWriter 類以字典的形式讀寫資料,下面來詳細看一下相應功能。首先來看一下 csv 模組常數資訊,如下所示:
writer(csvfile, dialect=’excel’, **fmtparams)
返回一個 writer 物件,該物件負責將使用者的資料在給定的檔案類物件上轉換為帶分隔符的字串。
看下範例:
import csv with open('test.csv', 'w', newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(['id', 'name', 'age']) # 寫入多行 data = [('1001', '張三', '21'), ('1002', '李四', '31')] writer.writerows(data)
reader(csvfile, dialect=’excel’, **fmtparams)
返回一個 reader 物件,該物件將逐行遍歷 csvfile,csvfile 可以是檔案物件和列表物件,如果是檔案物件要使用 newline=’’ 開啟。看下範例:
import csv with open('test.csv', newline='') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: print(', '.join(row))
Sniffer 類
用於推斷 CSV 檔案的格式,該類提供瞭如下兩個方法:
sniff(sample, delimiters=None)
分析給定的 sample,如果給出可選的 delimiters 引數,則該引數會被解釋為字串,該字串包含了可能的有效定界符。
has_header(sample)
分析範例文字(假定為 CSV 格式),如果第一行很可能是一系列列標題,則返回 True。
該類及方法使用較少,瞭解即可,下面通過一個範例簡單瞭解一下。
import csv with open('test.csv', newline='') as csvfile: dialect = csv.Sniffer().sniff(csvfile.read(1024)) csvfile.seek(0) reader = csv.reader(csvfile, dialect) for row in reader: print(row)
Reader 物件
Reader 物件指 DictReader 範例和 reader() 函數返回的物件,下面看一下其公開屬性和方法。
next()
返回 reader 的可迭代物件的下一行,返回值可能是列表或字典。
dialect
dialect 描述,唯讀,供解析器使用。
line_num
源迭代器已經讀取了的行數。
fieldnames
欄位名稱,該屬性為 DictReader 物件屬性。
Writer 物件
Writer 物件指 DictWriter 範例和 writer() 函數返回的物件,下面看一下其公開屬性和方法。
writerow(row)
將引數 row 寫入 writer 的檔案物件。
writerows(rows)
將 rows*(即能迭代出多個上述 *row 物件的迭代器)中的所有元素寫入 writer 的檔案物件。
writeheader()
在 writer 的檔案物件中,寫入一行欄位名稱,該方法為 DictWriter 物件方法。
dialect
dialect 描述,唯讀,供 writer 使用。
寫讀追加狀態
'r':讀
'w':寫
'a':追加
'r+' == r+w(可讀可寫,檔案若不存在就報錯(IOError))
'w+' == w+r(可讀可寫,檔案若不存在就建立)
'a+' ==a+r(可追加可寫,檔案若不存在就建立)
對應的,如果是二進位制檔案,就都加一個b就好啦:
'rb' 'wb' 'ab' 'rb+' 'wb+' 'ab+'
以上就是一文教你如何用Python輕輕鬆鬆操作Excel,Word,CSV的詳細內容,更多關於Python操作Excel Word CSV的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45