r以讀方式開啟檔案,可讀取檔案資訊
w已寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空,再寫入
a以追加模式開啟檔案,開啟檔案可指標移至末尾,檔案不存在則建立
r+以讀寫方式開啟檔案,可對檔案進行讀和寫操作
w+消除檔案內容,以讀寫方式開啟檔案
a+以讀寫方式開啟檔案,檔案指標移至末尾
b以二進位制開啟檔案
#coding=utf-8import csv
import codecs
import sys
# reload(sys)
# sys.setdefaultencoding('utf-8')
#建立寫入
csvfile=open('csv_test.csv','wb')
# csvfile.write(codecs.bom_utf8)#防止檔案中顯示中文亂碼(並非亂碼),若注意生成檔案編碼,用notepad++轉碼也能正常顯示。
writer=csv.writer(csvfile)
writer.writerow(['姓名','年齡','**'])
data=[('alex','23','139'),('tom','43','189')]
writer.writerows(data)
csvfile.close()
#讀取csvfile=open('csv_test.csv','rb')
reader=csv.reader(csvfile)
for line in reader:
print line
csvfile.close()
例子:表單提交後的結果是:
rows = [,,,
,]這樣就可以直接呼叫dictwriter.writerows方法來處理了:
import csvfieldnames = ['column1', 'column2', 'column3', 'column4']
dict_writer = csv.dictwriter(file('your.csv', 'wb'), fieldnames=fieldnames)
dict_writer. writeheader(fieldnames) # csv第一行需要自己加入
dict_writer.writerows(rows) # rows就是表單提交的資料
*注意:這裡的csv檔案寫入需要external method的支援,因為在zope中由於許可權沙箱的問題是不能直接操作csv模組來讀寫檔案系統的。
#coding=utf-8#檔案建立和寫入
f=open('test.txt','w')
f.write('hello world')#資料只寫到快取,未儲存到檔案
f.close()#儲存到檔案
f1=open('test.txt','r+')#r+模式不會清空檔案,而是替換內容
f1.write('hello boy')
f1.close()
f2=open('test.txt','a')#a模式實現追加
f2.write('\nhello girl')
f2.writelines(['\n你好','\n再見'])#多行寫入
f2.flush()#將修改寫入檔案,無須關閉
demo:
#檔案讀取(按指標)f3=open('test.txt')
print f3.read(1)
f3.seek(1,1)
'''f.seek(偏移量,選項)
(1)選項=0,表示將檔案指標指向從檔案頭部到「偏移量」位元組處
(2)選項=1,表示將檔案指標指向從檔案的當前位置,向後移動「偏移量」位元組
(3)選項=2,表示將檔案指標指向從檔案的尾部,向前移動「偏移量」位元組
'''print f3.read(1)
print f3.tell()#獲取指標位置
f3.close()
#檔案讀取(按行)
'''f3.read()#讀取所有
f3.readline()#逐行讀取
f3.next()#類readline,未讀到報錯
f3.readlines()#列表形式存放
for i in open('test.txt'):
print i
'''#檔案操作(查詢)
#方法一:全內容查詢
f4=open('test.txt')
source=f4.read()
f4.close()
s=len(re.findall('hello',source))
print s
#方法二:按行查詢
f5=open('test.txt')
count=0
for i in f5.readlines():
li=re.findall('hello',i)
if len(li)>0:
count=count+len(li)
print 'search',count,'hello'
f5.close()
#檔案操作(替換)例項:把test.txt 中的hello全部換為"hi",並把結果儲存到myhello.txt中。
f6=open('test.txt')
f7=open('myhello.txt','a')
for i in f6.readlines():
f7.write(i.replace('hello','hi'))
f6.close()
f7.close()
#例項:讀取檔案test.txt內容,去除空行和注釋行後,以行為單位進行排序,並將結果輸出為result.txt。
f = open('cdays-4-test.txt')
result = list()
for line in f.readlines(): # 逐行讀取資料
line = line.strip() #去掉每行頭尾空白
if not len(line) or line.startswith('#'): # 判斷是否是空行或注釋行
continue #是的話,跳過不處理
result.sort() #排序結果
print result
open('result.txt','w').write('%s' % '\n'.join(result)) #儲存入結果檔案
PHP CLI模式介紹及使用教程
看看全稱就知道了,php cli是php command line inte ce的簡稱,即php命令列介面,在windows和linux下都是支援php cli模式的,其實這兩者,我以前都寫過文章 一 window在命令列下執行php 程式 二 linux使用crontab實現定時任務 php c...
檔案讀寫模式
r僅讀,待開啟的檔案必須存在。w僅寫,若檔案已存在,內容將先被清空。a僅寫,若檔案已存在,內容不會清空。r 讀寫,待開啟的檔案必須存在。w 讀寫,若檔案已存在,內容將先被清空。a 讀寫,若檔案已存在,內容不會清空。rb僅讀,二進位制,待開啟的檔案必須存在。wb僅寫,二進位制,若檔案已存在,內容將先被...
JAVA mysql讀寫分離外掛程式介紹
kingshard是乙個由go開發高效能mysql proxy專案,kingshard在滿足基本的讀寫分離的功能上,致力於簡化mysql分庫分表操作 能夠讓dba通過kingshard輕鬆平滑地實現mysql資料庫擴容。kingshard的效能是直連mysql效能的80 以上。cobar 是提供關係...