1. 程式人生 > >解決python2.7.x在windows系統下檔案寫入中文報錯

解決python2.7.x在windows系統下檔案寫入中文報錯

分析:windows下cmd預設的編碼是ASCII編碼 ,windows的中文環境下編碼是GBK

方法一:在儲存輸出流儲存的時候做一個對文字GBK編碼,在輸出到檔案

如下

    title = textVar.get() + ".txt"              # 獲取標題
    content = text.get("0.0", "end")            # 獲取內容
    
    if title != ".txt":
        fileObj = open(title, "wb")             # 開啟一個檔案
        if systemName == "nt":
            print u"Windows系統";
            fileObj.write(content.encode("gbk"));
        else:
            print u"Linux系統";
            fileObj.write(content);
        fileObj.close()                         # 關閉開啟的檔案
        label.config(text = "已儲存") 
    else:
        label.config(text = "請輸入標題") 

os.name判斷是windows系統還是Linux系統

解決中文亂碼

寫的時候

content.encode("gbk")

讀取的時候同樣要以gbk解碼

content.decode("gbk")

方法二:直接設定cmd的編碼為UTF-8或者gbk 後面直接就可以讀寫了
import sys  
reload(sys)  
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding() 


相關推薦

解決python2.7.x在windows系統檔案寫入中文

分析:windows下cmd預設的編碼是ASCII編碼 ,windows的中文環境下編碼是GBK 方法一:在儲存輸出流儲存的時候做一個對文字GBK編碼,在輸出到檔案 如下 title = t

舊專案適配 iOS9 時 .dylib 系統檔案的連結的問題處理

今天將公司的專案改用 Xcode7 開發,剛開啟專案就有醒目的四個地方爆紅 但是在模擬器環境的依舊能夠正常的執行,一旦連線到真機(非 iOS9 系統)就提示有兩個庫檔案找不到,如下所示: 難道 iOS9 蘋果的庫檔案也發生了相應的變化?檢視 8.4 與 9

u盤在linux系統檔案只讀方式的解決方案

          我用的時ubuntu系統,經常使用u盤來傳送檔案,最近不知道為什麼,u盤在window可以正常使用,但是到linux下檔案就變成了只讀方面了,沒法進行復制,貼上了.上網查詢,發現方

解決Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode異常錯誤

def 好的 列數 tab 2.7 模式 fault 應用 ber 今天準備將某SQLite數據庫的內容導出到文本文檔(*.txt)中,設計的Python程序如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

關於python2.7從數據庫讀取中文顯示亂碼的問題解決

pri str col 問題 ffffff mysqld rom put ssa #!/usr/bin/env python # _*_ coding:utf-8 _*_ import MySQLdb import sys str = raw_input("pleas

解決centos 7 minimal配置ifconfig無效的問題

最近買了批新伺服器,Intel 金牌CPU,雙卡,128G記憶體,40T硬碟。 開啟機器以後首先要確認聯網的問題,直接上命令發現,ifconfig command not found。 問題其實是沒有安裝這個ifconfig。 下面直接說重點: 1.nm

【針對putty】ubuntu伺服器系統檔案上傳,解壓等常用的一些命令

ubuntu系統下常用的命令 window下上傳檔案至ubuntu系統 ubuntu下的解壓和壓縮 Tomcat的啟動和停止命令 mysql命令 注:這裡針對的是putty!! window下上傳檔案至ubuntu系統

解決 Python2.7 UnicodeDecodeError: 'ascii' codec can't decode...

在使用python呼叫matlab相關的patplotlib.pyplot庫進行畫圖操作時遇到“UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xbd in position 11: ordinal not in range(128)

解決MySQL5.7在MAC登入ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)問題

問題描述 今天在MAC上安裝完MYSQL後,MYSQL預設給分配了一個預設密碼,但當自己在終端上使用預設密碼登入的時候,總會提示一個授權失敗的錯誤:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Y

解決python2.7 執行 UnicodeEncodeError: 'gbk' codec can't encode character u'\xa9' in position 0: illega

執行環境:win7 執行場景:cmd python版本:2.7 產生問題的原因:如果在window下執行 對於Unicode字元,需要print出來的話,由於本地系統是Windows中的cmd,預設codepage是CP936,即GBK的編碼,所以python直譯器需要先將上述的Unic

解決Linux系統Mysql資料庫中文顯示成問號的問題

當我們將開發好的javaWEB專案部署到linux系統上,操作資料庫的時候,會出現中文亂碼問題,比如做插入操作,發現新增到資料庫的資料中文出現論碼,下面就將解決linux下mysql中文亂碼問題! 開啟Linux視窗,啟動mysql。 連線mysql輸入show variables li

為Ubuntu 16.04 新增永久免費https SSL證書(解決python2.7

SSL證書這麼貴,自簽名證書這麼不受瀏覽器待見,為什麼不用Let’s encrypt免費證書呢?而且這個證書基本上一鍵生成,下面是方法。 下載let’s encrypt客戶端 git clone https://github.com/certbot/ce

Linux系統Mysql資料庫中文亂碼問題解決

問題描述:當我們將開發好的javaWEB專案部署到linux系統上,操作資料庫的時候,會出現中文亂碼問題,比如做插入操作,發現新增到資料庫的資料中文出現論碼,下面就將解決linux下mysql中文亂碼問題! 一.開啟Linux視窗,啟動mysql。 二.連線mysql輸入

Python2.7 xlrd讀取、xlwt寫入、xlutils讀寫Excel表格內容

之前經常用python讀取Excel內容,後來有一段時間不用了再用就給忘記了,覺得記錄還是很有必要的 1. 首選安裝xlrd 安裝方法很簡單,如果裝了pip的話 pip install xlrd 2. python程式碼 實現的功能:將Excel的內容按照字典形式打印

解決 RedHat 7.3 環境離線安裝 docker 最新版本的終極辦法

一、引言 在上篇部落格中,我已經完成了在 RedHat 7.2 環境中離線化安裝 docker 1.7.1 的任務(通過 rpm 離線包)。 但是總覺得 docker 1.7.1 都已經是 2015 年的版本了,今年已經是 2018 年了,怎麼還能接受用這麼老的版本呢

基於Windows10 x64+visual Studio2013+Python2.7.12環境的Caffe配置學習

GPU Computer Capability GTX660, 680, 760, 770 compute_30,sm_30 GTX780, Titan Z, Titan Black, K20, K40 compute_35,sm_35 GTX960, 970, 980, Titan X

解決 Python2.7 UnicodeDecodeError: 'ascii' codec can't decode...

在使用python呼叫matlab相關的patplotlib.pyplot庫進行畫圖操作時遇到“UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xbd in position 11: ordinal no

win764位安裝apache ftp sever1.6.0並解決在64位系統出現的問題

 本次安裝環境為win764位與apache ftp sever1.6.0 一、apache ftp sever1.6.0安裝教程 1、下載apache ftp sever1.6.0,現在官網上好像下不到了,請自行百度 2、解壓縮到本地目錄,比如說我的是F:\apache-

Linux系統檔案的上傳與下載命令

linux系統下可以直接從客戶端上傳檔案到伺服器端,命令格式: scp files [email protected]:filepath 解釋: files 待上傳的檔案,可以有多個,多個檔案之間用空格隔開。也可以用*.filetype上傳某個型別的全部檔案 use

Linux系統檔案賦權指令chmod和檔案所有權指令chown詳解

檔案賦權指令chmod( chmod -R 777 /home/user) 檢視檔案許可權的語句:   在終端輸入: ls -l xxx.xxx (xxx.xxx是檔名)   那麼就會出現相類