[file I/O]
寫得很好
http://debut.cis.nctu.edu.tw/~ching/Course/JavaCourse/05_input_output/02_input_output.htm
2012年10月31日 星期三
2012年10月29日 星期一
[python] 編碼錯誤解決(UnicodeDecodeError)
錯誤訊息:
Traceback (most recent call last):
File "./check_notice.py", line 243, in <module>
file.save('Check_Legal_Notice_Report.xls')
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 643, in save
doc.save(filename, self.get_biff_data())
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 618, in get_biff_data
shared_str_table = self.__sst_rec()
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 580, in __sst_rec
return self.__sst.get_biff_record()
File "/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line 77, in get_biff_record
self._add_to_sst(s)
File "/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line 92, in _add_to_sst
u_str = upack2(s, self.encoding)
File "/usr/local/lib/python2.7/dist-packages/xlwt/UnicodeUtils.py", line 50, in upack2
us = unicode(s, encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 40: ordinal not in range(128)
--
此為編碼錯誤(UnicodeDecodeError)
Python內部使用unicode編碼
在做編碼轉換時,需先將其他解碼(decode)成unicode
再從unicode編碼(encode)成另一種編碼
Ex1:
print a.encode('utf-8')
Ex2:
sheet.write(row,col,data.encode('utf-8'))
Traceback (most recent call last):
File "./check_notice.py", line 243, in <module>
file.save('Check_Legal_Notice_Report.xls')
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 643, in save
doc.save(filename, self.get_biff_data())
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 618, in get_biff_data
shared_str_table = self.__sst_rec()
File "/usr/local/lib/python2.7/dist-packages/xlwt/Workbook.py", line 580, in __sst_rec
return self.__sst.get_biff_record()
File "/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line 77, in get_biff_record
self._add_to_sst(s)
File "/usr/local/lib/python2.7/dist-packages/xlwt/BIFFRecords.py", line 92, in _add_to_sst
u_str = upack2(s, self.encoding)
File "/usr/local/lib/python2.7/dist-packages/xlwt/UnicodeUtils.py", line 50, in upack2
us = unicode(s, encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 40: ordinal not in range(128)
--
此為編碼錯誤(UnicodeDecodeError)
Python內部使用unicode編碼
在做編碼轉換時,需先將其他解碼(decode)成unicode
再從unicode編碼(encode)成另一種編碼
Ex1:
print a.encode('utf-8')
Ex2:
sheet.write(row,col,data.encode('utf-8'))
2012年10月26日 星期五
[python] list與dictionary的結合
dictionary能儲存資料以及索引
對整理資料能夠有比較好的架構
但資料卻不是有序的序列
於是可藉由list來幫忙做排序
這篇介紹list中包dictionary,及dictionary中包list的方法
1). list中包dictionary
2). dictionary中包list
2.1). 新增資料前先檢查有沒有key
※ref:http://lucaswei.blogspot.tw/2012/05/pythondictxlist.html
對整理資料能夠有比較好的架構
但資料卻不是有序的序列
於是可藉由list來幫忙做排序
這篇介紹list中包dictionary,及dictionary中包list的方法
1). list中包dictionary
dict1={key:a} dict2={key:b} list=[dict1,dict2] or list=[] list.append(dict1)
2). dictionary中包list
dict={} dict[key]=list() dict[key].append(value)
2.1). 新增資料前先檢查有沒有key
if key not in dict: dict[key] = list() dict[key].append(value)
※ref:http://lucaswei.blogspot.tw/2012/05/pythondictxlist.html
[python] 外部指令
python需引用外部指令時,可用以下程式碼
import commands command_git='cd %s; git log' %(codebase) log=commands.getoutput(command_git)
[python] iterator與enumerate
enumerate(iterable, start=0)
回傳以 iterable 與連續整數配對的 enumerate 物件, start 為整數的起始值,預設為 0
Ex1:
Ex2:
回傳以 iterable 與連續整數配對的 enumerate 物件, start 為整數的起始值,預設為 0
Ex1:
d = ['Spring', 'Summer', 'Fall', 'Winter'] for i, j in enumerate(d, 1): print(i, j) [output] 1 Spring 2 Summer 3 Fall 4 Winter
Ex2:
for i, n in enumerate([1, 3, 5]): print i, n [output] 0 1 1 3 2 5
2012年10月11日 星期四
[python] 使用xlwt輸出excel檔
1). 下載xlwt
http://pypi.python.org/pypi/xlwt
2). 安裝xlwt
$ cd [下載的xlwt目錄]
$ sudo python setup.py install
3). 輸出excel檔
#!/usr/bin/python
※[python] 安裝套件方法
http://pypi.python.org/pypi/xlwt
2). 安裝xlwt
$ cd [下載的xlwt目錄]
$ sudo python setup.py install
3). 輸出excel檔
#!/usr/bin/python
import xlwt #要先安裝xlwt file = xlwt.Workbook() #Work的W是大寫 #table = file.add_sheet('sheet name') #新建sheet table = file.add_sheet('sheet name',cell_overwrite_ok=True) #對同個儲存格可複寫的sheet table.write(0,0,'test') #對某個儲存格寫入資料 file.save('demo.xls') #儲存為excel
※[python] 安裝套件方法
2012年10月9日 星期二
訂閱:
文章 (Atom)