本篇僅作為**記錄
#!/usr/bin/python
# -*- coding: utf-8 -*-
# author: ruiming lin
# datetime: 2021/01/25 14:51
# description:
import requests
from pyquery import pyquery as pq
import csv
import numpy
import pandas as pd
'''r:以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
rb:以二進位制唯讀方式開啟乙個檔案。檔案指標將會放在檔案的開頭。
r+:以讀寫方式開啟乙個檔案。檔案指標將會放在檔案的開頭。
rb+:以二進位制讀寫方式開啟乙個檔案。檔案指標將會放在檔案的開頭。
w:以寫入方式開啟乙個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
wb:以二進位制寫入方式開啟乙個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
w+:以讀寫方式開啟乙個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
wb+:以二進位制讀寫格式開啟乙個檔案。如果該檔案已存在,則將其覆蓋。如果該檔案不存在,則建立新檔案。
a:以追加方式開啟乙個檔案。如果該檔案已存在,檔案指標將會放在檔案結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,則建立新檔案來寫入。
ab:以二進位制追加方式開啟乙個檔案。如果該檔案已存在,則檔案指標將會放在檔案結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,則建立新檔案來寫入。
a+:以讀寫方式開啟乙個檔案。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,則建立新檔案來讀寫。
ab+:以二進位制追加方式開啟乙個檔案。如果該檔案已存在,則檔案指標將會放在檔案結尾。如果該檔案不存在,則建立新檔案用於讀寫。
'''# 爬取頁面的方法
defget_html
(page)
: url =
""+str
(page)
response = requests.get(url=url)
if response.status_code ==
200:
return response.text
else
:return
none
defscrape_html_1
(i):
html = get_html(i)
doc = pq(html)
trs = doc.find(
"table tr:not(:first-child)"
).items(
)for tr in trs:
name = tr.find(
"td:nth-child(2)"
).text(
) team = tr.find(
"td:nth-child(3)"
).text(
) score = tr.find(
"td:nth-child(4)"
).text(
) rate = tr.find(
"td:nth-child(6)"
).text(
)yield
[name, team, score, rate]
defscrape_html_2
(i):
html = get_html(i)
doc = pq(html)
trs = doc.find(
"table tr:not(:first-child)"
).items(
)for tr in trs:
name = tr.find(
"td:nth-child(2)"
).text(
) team = tr.find(
"td:nth-child(3)"
).text(
) score = tr.find(
"td:nth-child(4)"
).text(
) rate = tr.find(
"td:nth-child(6)"
).text(
)yield
# 寫入列表,逐行寫入
flag =
false
# flag = true
if flag:
results =
for i in
range(3
):results.extend(scrape_html_1(i +1)
)with
open
('files/data.csv'
,'w'
, encoding=
'utf-8'
, newline='')
asfile
:for result in results:
writer = csv.writer(
file
) writer.writerow(result)
# 寫入列表,多行寫入
flag =
false
# flag = true
if flag:
results =
for i in
range(3
):results.extend(scrape_html_1(i +1)
)with
open
('files/data.csv'
,'w'
, encoding=
'utf-8'
, newline='')
asfile
: writer = csv.writer(
file
) writer.writerows(results)
# 寫入字典
flag =
false
# flag = true
if flag:
results =
for i in
range(3
):results.extend(scrape_html_2(i +1)
)with
open
('files/data.csv'
,'w'
, encoding=
'utf-8'
, newline='')
asfile
: fieldnames =
['名字'
,'隊伍'
,'得分'
,'命中率'
] writer = csv.dictwriter(
file
, fieldnames=fieldnames)
writer.writeheader(
) writer.writerows(results)
# 讀取本地csv檔案
flag =
false
# flag = true
if flag:
with
open
('files/data.csv'
,'r'
, encoding=
'utf-8')as
file
: reader = csv.reader(
file
)for row in reader:
(type
(row)
(row)
# 使用pandas的read_csv()
flag =
false
flag =
true
if flag:
df = pd.read_csv(
'files/data.csv'
(df)
python操作 csv檔案
需求 將a.csv中,相同手機號,只要有乙個傳送成功,則其餘改為傳送成功 遍歷軟體執行的資料夾 path dir os.getcwd for root,dirs,files in os.walk path dir for file in files if file.endswith csv f op...
python操作csv檔案
看上去不像是最優的樣子,可以改善 import csv csvfile open sentence lenth data.csv r encoding utf8 使用utf8格式讀取,windows預設讀取方式gbk reader csv.reader csvfile 讀取的是整張表 行 列 for...
python操作csv檔案
csv comma separated values 即逗號分隔值,可以用excel開啟檢視。由於是純文字,任何編輯器也都可開啟。與excel檔案不同,csv檔案中 值沒有型別,所有值都是字串,不能指定字型顏色等樣式,不能指定單元格的寬高,不能合併單元格沒有多個工作表,不能嵌入影象圖表 在csv檔案...