1. 程式人生 > >python在設定編碼和寫csv檔案遇到的問題以及解決方案

python在設定編碼和寫csv檔案遇到的問題以及解決方案

#coding=utf-8
from lxml import etree
import requests
import csv
import time
import sys
import codecs
reload(sys)
sys.setdefaultencoding('utf8')
def WriteCSV(Item):
    print Item[0],Item[1],Item[2]
    with open('home.csv','a+') as f:
        f.write(codecs.BOM_UTF8)
        writer = csv.writer(f)
        writer.writerow(Item)


#headers = {
        #'User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
#}
start_Url = 'http://beijing.qfang.com/garden/n'
for x in range(1,5):
    url = start_Url + str(x)
    html = requests.get(url)
    time.sleep(1)
    selector = etree.HTML(html.text)
    Lists = selector.xpath('//*[@id="cycleListings"]/ul/li')
    for List in Lists:
        Name = List.xpath('div[1]/p[1]/a/text()')[0]
#    //*[@id="cycleListings"]/ul/li[1]/div[1]/p[3]/span[1]
        Address = List.xpath('div[1]/p[3]/span[1]/text()')[0]
        Price = List.xpath('div[2]/p[1]/span[1]/text()')[0]
        Item = [Name,Address,Price]
        WriteCSV(Item)
本文為python,所寫的程式碼,程式碼中,遇到的問題是UnicodeEncodeError: 'ascii' codec can't encode/decode characters,然後改變行文編碼為utf-8:
import sys
reload(sys)
sys.setdefaultencoding('utf8')

在寫入csv中遇到了亂碼錯誤:

 with open('home.csv','a+') as f:
        f.write(codecs.BOM_UTF8)
        writer = csv.writer(f)
        writer.writerow(Item)

在f中設定f.write(codecs.BOM_UTF8)

相關推薦

python設定編碼csv檔案遇到的問題以及解決方案

#coding=utf-8 from lxml import etree import requests import csv import time import sys import codecs

一分鐘學會讀csv檔案csv檔案python實現)

  import csv with open('Python-Predict/Data/train.csv') as tra: rdr = csv.reader(tra) items = list(rdr) print("rdr:",rdr) print(items)

python儲存身份證號碼為csv檔案顯示問題解決

用python處理含身份證號碼的文字檔案,將其另外儲存為csv檔案,該csv檔案使用wps開啟顯示身份證號碼後面三位數變為0,解決的辦法是:身份證號碼前加'\t',例如下面程式碼: origine_file = r"C:\Files\名單.txt" save_to = "C:\Fil

Python字符集編碼檔案

字串編碼python中預設編碼是ASCII,可以通過以下方式設定和獲取:import sysprint sys.getdefaultencoding()sys.setdefaultencoding('gbk') 但直到python重新啟動後新的預設編碼才會生效,我試了一下,s

pythoncsv檔案方法總結

python提供了大量的庫,可以非常方便的進行各種操作,現在把python中實現讀寫csv檔案的方法使用程式的方式呈現出來。 1、使用csv讀寫csv檔案方法總結 reader()函式是一個閱讀器把閱讀的CSV檔案每一行以一個列表表示出來以至於你可以用for迴圈來遍歷他 讀檔案的時候,開啟檔

Python.csv檔案

# encoding: UTF-8 import csv # 讀取csv檔案 stocks_list = [] #方式一 # file = open(u'../Output.csv', u"r") # data = csv.reader(file) # 返回的是迭代型別 #方式二 with

python字元編碼檔案處理

  一.瞭解字元編碼的知識儲備 1.文字編輯器存取檔案的原理(nodepad++,python,word)   開啟編輯器就打開了啟動了一個程序,是在記憶體中的,所以,用編輯器編寫的內容也都是存放於記憶體中的,斷電後資料丟失 要想永遠儲存,需要點選儲存按鈕:編輯器

python讀取寫入csv檔案

----------------python讀取csv檔案------------------ #匯入csv 建立一個csv檔案,輸入內容 import csv    #1.找到需要被開啟的檔案路徑,通過open開啟檔案,宣告開啟的方式,宣告編碼格式 csv_file=open(

python指定字符集寫入讀取csv檔案

‘r’:只讀(預設。如果檔案不存在,則丟擲錯誤) ‘w’:只寫(如果檔案不存在,則自動建立檔案) ‘a’:附加到檔案末尾(如果檔案不存在,則自動建立檔案) ‘r+’:讀寫(如果檔案不存在,則丟擲錯誤) 一,寫入檔案 staData="123" filename = "/

python按鈕讀csv檔案

from Tkinter import * import cv2 import matplotlib.pyplot as plt import matplotlib.image as mpimg import os import shutil import csv file

Python按指定列讀取csv檔案檔案時的隔行問題

程式設計環境:Python3.5 先講一下如何讀寫csv檔案: import csv csvfile=open('train.csv','r') #Python3.5這裡不要用rb reader=csv.reader(csvfile) train=[] for line

c++讀檔案設定的位置

檔案定位  和C的檔案操作方式不同的是,C++ I/O系統管理兩個與一個檔案相聯絡的指標。一個是讀指標,它說明輸入操作在檔案中的位置;另一個是寫指標,它下次寫操作的位置。每次執行輸入或輸出時,相應的指標自動變化。所以,C++的檔案定位分為讀位置和寫位置的定位,對應的成員函式是

python資料儲存系列教程——python(pandas)讀csv檔案

全棧工程師開發手冊 (作者:欒鵬) CSV檔案的規範 1、使用回車換行(兩個字元)作為行分隔符,最後一行資料可以沒有這兩個字元。 2、標題行是否需要,要雙方顯示約定 3、每行記錄的欄位數要相同,使用逗號分隔。逗號是預設使用的值

pythoncsv檔案

1. 將DataFrame資料寫入csv (1)用 csv包一行一行的寫入   import csv #python2可以用file替代open with open("test.csv","w") as csvfile:      writer =

Pythoncsv檔案的幾種方法 及 pandas.read_csv引數全解

''' Python讀寫csv檔案 逗號分隔值(Comma-Separated Values,CSV,有時也稱為字元分隔值,因為分隔字元也可以不是逗號), 其檔案以純文字形式儲存表格資料(數字和文字)。 純文字意味著該檔案是一個字元序列,不含必須像二進位制數字那樣被解讀的資

Pythonpythoncsv檔案並增加行列

# -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28:17 2017 @author: Shawn Yuen """ import csv

Windows伺服器啟動Tomcat時,設定編碼將控制檯輸出到log檔案

1.修改CMD控制編碼:CHCP 65001 設定編碼為UTF-8; 2.開啟TOMCAT目錄下bin下的startup.bat中的 call "%EXECUTABLE%" start %CMD_LINE_ARGS%     改為call "%EXECUTABLE%" ru

Python:用Pandas讀CSV檔案到MySQL

彙總一下,自己最近在使用Python讀寫CSV存資料庫中遇到的各種問題。 上程式碼: reload(sys) sys.setdefaultencoding('utf-8') host = '127.0.0.1' port = 3306 db = 'wor

使用 Python csv 檔案

非關係型資料庫中,以文件型的資料庫 MongoDB 最為著名。還有一個很好的全文檢索引擎 Elasticsearch,基本上也可以當做一個文件型的資料庫來使用。 建立 csv 檔案: import csv with open("./csv_tutot

python 讀取寫入csv檔案

python csv讀取和寫入csv檔案的簡單應用 #寫入 import csv dic = {'./a.c':1, './b.c':2, './d.c':3} csvFile = open('csv