91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何實現讀寫csv文件

發布時間:2020-11-04 15:41:20 來源:億速云 閱讀:197 作者:Leah 欄目:開發技術

python如何實現讀寫csv文件?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1、讀文件

import csv
 
csv_reader = csv.reader(open("data.file", encoding="utf-8"))
for row in csv_reader:
  print(row)

csv_reader把每一行數據轉化成了一個list,list中每個元素是一個字符串。

2、寫文件

讀文件時,我們把csv文件讀入列表中,寫文件時會把列表中的元素寫入到csv文件中。

list = ["1", "2", "3", "4"]
out = open(outfile, "w")
csv_writer = csv.writer(out)
csv_writer.writerow(list)

可能遇到的問題:直接使用這種寫法會導致文件每一行后面會多一個空行。

解決辦法如下:

out = open(outfile, "w", newline="")
csv_writer = csv.writer(out, dialect="excel")
csv_writer.writerow(list)

在stackoverflow上找到了比較經典的解釋,原來 python3里面對 str和bytes類型做了嚴格的區分,不像python2里面某些函數里可以混用。所以用python3來寫wirterow時,打開文件不要用wb模式,只需要使用w模式,然后帶上newline=''。

3、示例

  • 簡單讀寫
import csv
 
class writer:
  def __init__(self):
    self.dict = {
      "標題": "標題",
      "鏈接": "鏈接",
      "服務": "服務",
      "dsr": "dsr",
      "店鋪名": "店鋪名",
      "價格": "店鋪名",
      "付款人數": "付款人數",
      "發貨地": "發貨地",
    }
    out = open("outfile.csv", "w", newline="")
    self.csv_writer = csv.writer(out, dialect="excel")
    self.csv_writer.writerow(self.dict)
 
  def writer_to(self, key_value):
    self.csv_writer.writerow(key_value)
 
 
if __name__ == "__main__":
  a = writer()
  new = {
    "鏈接": "http://www.baidu.com",
    "標題": "我是標題",
  }
  a.dict.update(new)
  print(a.dict)
  a.writer_to(a.dict.values())
  • 結合爬蟲
import csv
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, NoSuchElementException
from selenium.webdriver.common.action_chains import ActionChains
 
driver = ["1", "2"]
colspan = ["1", "2"]
try:
  out = open("類目.csv", "w", newline="")
except PermissionError:
  print("文件被其他程序占用")
  input("")
csv_writer = csv.writer(out, dialect="excel")
csv_writer.writerow(["寶貝ID", "類目"])
 
 
def open_chrome():
  driver[0] = webdriver.Chrome()
  driver[0].get("https://www.dianchacha.com")
  input("請登陸后按回車:")
 
 
def EC_located(one_group, value):
  """
   目的:簡化代碼長度,參數1選擇one或者group切換選中模式
  :param value:要找的值【CSS選擇器】
  :return:選擇到的對象
  """
  wait = WebDriverWait(driver[0], 10)
  if one_group == "one":
    try:
      ecl = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, value)))
      return ecl
    except TimeoutException:
      print(value, "1元素未加載成功,等待超時")
  else:
    try:
      ecl = wait.until(
        EC.presence_of_all_elements_located((By.CSS_SELECTOR, value))
      )
      return ecl
    except TimeoutException:
      print(value, "1元素---組---未加載成功,等待超時")
 
 
def operating(ID):
  # 先獲取ID輸入框
  driver[0].get("https://www.dianchacha.com/item/info/index/iid/" + ID)
  html = driver[0].page_source
  if "未能找到親的寶貝" not in html:
    colspans = EC_located("group", ".colspan-1")
    colspan[0] = str(colspans[1].text).replace("寶貝類目: ", "")
  else:
    return operating(ID)
  print(colspan)
 
 
def writer_txt():
  csv_writer.writerow([url[0], colspan[0]])
  print("保存", url[0], colspan[0], "成功")
 
 
url = ["0", "1"]
 
 
def main():
  open_chrome()
  file = "寶貝ID.txt"
  with open(file) as f:
    for line in f.readlines():
      url[0] = line
      print(line)
      operating(url[0])
      writer_txt()
    out.close()
    print("已完成")
 
 
if __name__ == "__main__":
  main()

關于python如何實現讀寫csv文件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 龙门县| 礼泉县| 东兰县| 武强县| 苏尼特右旗| 无为县| 东港市| 黔西县| 南宫市| 北流市| 辽源市| 西和县| 新野县| 乌恰县| 桐乡市| 潢川县| 夏津县| 凤冈县| 正定县| 望都县| 邢台县| 陈巴尔虎旗| 临邑县| 闽侯县| 南汇区| 上饶县| 望江县| 徐州市| 民勤县| 武隆县| 洪湖市| 苏尼特左旗| 台南县| 宜川县| 宿松县| 黔江区| 成武县| 泸定县| 兴城市| 长葛市|