Python讀寫文件(csv光酣、txt疏遏、excel)

大家做在數(shù)據(jù)處理的時(shí)候,肯定難免會(huì)與文件交互救军,那么對(duì)于指定的文件類型财异,我們?nèi)绾尾僮髂兀?/p>

1.python讀寫csv文件

import csv
 
#python2可以用file替代open
with  open('test.csv','w') as csvFile:
    writer = csv.writer(csvFile)
    #先寫columns_name
    writer.writerow(["index","a_name","b_name"])
    #寫入多行用writerows
    writer.writerows([[1,2,3],[0,1,2],[4,5,6]])
 
#用reder讀取csv文件
with open('test.csv','r') as csvFile:
    reader = csv.reader(csvFile)
    for line in reader:
              print line

一定要注意,csv文件在寫入時(shí)唱遭,字段和字段之間是用逗號(hào)“”戳寸,“”分割的,如果稍微不注意拷泽,就會(huì)出現(xiàn)串行的情況疫鹊。

2.python讀寫excel文件

import xlwt
#創(chuàng)建工作簿
f = xlwt.Workbook()
 '''
    創(chuàng)建第一個(gè)sheet:
    sheet1
 '''
 #創(chuàng)建sheet
 sheet1 = f.add_sheet(u'sheet1',cell_overwrite_ok=True)
 row0 = [u'編號(hào)',u'單位',u'網(wǎng)站備案號(hào)',u'域名',u'外鏈名稱',u'不良網(wǎng)站名',u'不良url地址',u'地市',u'ip地址',u'截圖',u'備注',u'審核時(shí)間',u'父鏈接',u'源碼超鏈接']
 #生成第一行
 for i in range(0,len(row0)):
       sheet1.write(0,i,row0[i])  # 順序?yàn)閤行x列寫入第x個(gè)元素
 f.save('newfile.xls')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 讀取excel數(shù)據(jù)
import xlrd
data = xlrd.open_workbook('test.xls') # 打開xls文件
table = data.sheets()[0] # 打開第一張表
nrows = table.nrows      # 獲取表的行數(shù)
for i in range(nrows):   # 循環(huán)逐行打印
    if i == 0: # 跳過第一行
        continue
    print table.row_values(i)

3.python讀寫txt文件

#第一種
with open("test.txt","r","utf-8") as f:   
  # 為a+模式時(shí),因?yàn)闉樽芳幽J降耄羔樢呀?jīng)移到文尾订晌,讀出來的是一個(gè)空字符串。
    ftext = f.read()  # 一次性讀全部成一個(gè)字符串
    ftextlist = f.readlines() # 也是一次性讀全部蚌吸,但每一行作為一個(gè)子句存入一個(gè)列表
#第二種
f = open('test.txt', 'r', 'utf-8') 
ftext = f.read() # 一次性讀取完成
ftextlist = f.readlines() # 同上
fline = f.readline() # 只讀取1行
f.close() # 關(guān)閉文件

# 寫入txt
f = open('test.txt', 'ab', 'utf-8')  # 在文件存在內(nèi)容的時(shí)候追加
f = open('test.txt', 'wb', 'utf-8')  # 文件存在時(shí)直接覆蓋锈拨,沒有就創(chuàng)建文件寫入
f.write('aa') # 文件寫入內(nèi)容
f.close()
# 第二種
with open('test.txt', 'a') as f: # 道理同上
        f.write('aa')
with open('test.txt', 'w') as f: # 道理同上
        f.write('aa')
image.png

接下來說說with open 和 open的區(qū)別:

區(qū)別:

用open去打開一個(gè)文件進(jìn)行讀取,假設(shè)文件不存在的話羹唠,比如打開文件 aaaa


image.png

如果文件不存在奕枢,open()函數(shù)就會(huì)拋出一個(gè)IOError的錯(cuò)誤,并且給出錯(cuò)誤碼和詳細(xì)的信息告訴你文件不存在佩微!
如果文件打開成功缝彬,接下來,調(diào)用read()方法可以一次讀取文件的全部?jī)?nèi)容哺眯,Python把內(nèi)容讀到內(nèi)存谷浅,用一個(gè)str對(duì)象表示

>>> f.read()
'Hello, world!'

最后一步是調(diào)用close()方法關(guān)閉文件。文件使用完畢后必須關(guān)閉奶卓,因?yàn)槲募?duì)象會(huì)占用操作系統(tǒng)的資源一疯,并且操作系統(tǒng)同一時(shí)間能打開的文件數(shù)量也是有限的:

f.close()

由于文件讀寫時(shí)都有可能產(chǎn)生IOError,一旦出錯(cuò)夺姑,后面的f.close()就不會(huì)調(diào)用墩邀。所以,為了保證無論是否出錯(cuò)都能正確地關(guān)閉文件盏浙,我們可以使用try ... finally來實(shí)現(xiàn):

try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f.close()

但是每次都這么寫實(shí)在太繁瑣眉睹,所以荔茬,Python引入了with語句來自動(dòng)幫我們調(diào)用close()方法:

with open('/path/to/file', 'r') as f:
    print(f.read())

這和前面的try ... finally是一樣的,但是代碼更佳簡(jiǎn)潔竹海,并且不必調(diào)用f.close()方法慕蔚。

總結(jié):以后讀寫文件都使用with open語句,不要再像以前那樣用f = open()這種語句了!

作者:可愛的小蟲蟲

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末站削,一起剝皮案震驚了整個(gè)濱河市坊萝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌许起,老刑警劉巖十偶,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異园细,居然都是意外死亡惦积,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門猛频,熙熙樓的掌柜王于貴愁眉苦臉地迎上來狮崩,“玉大人,你說我怎么就攤上這事鹿寻∧啦瘢” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵毡熏,是天一觀的道長(zhǎng)坦敌。 經(jīng)常有香客問我,道長(zhǎng)痢法,這世上最難降的妖魔是什么狱窘? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮财搁,結(jié)果婚禮上蘸炸,老公的妹妹穿的比我還像新娘。我一直安慰自己尖奔,他們只是感情好搭儒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著提茁,像睡著了一般仗嗦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甘凭,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音火邓,去河邊找鬼丹弱。 笑死德撬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躲胳。 我是一名探鬼主播蜓洪,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼坯苹!你這毒婦竟也來了隆檀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤粹湃,失蹤者是張志新(化名)和其女友劉穎恐仑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體为鳄,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡裳仆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孤钦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歧斟。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖偏形,靈堂內(nèi)的尸體忽然破棺而出静袖,到底是詐尸還是另有隱情,我是刑警寧澤俊扭,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布队橙,位于F島的核電站,受9級(jí)特大地震影響统扳,放射性物質(zhì)發(fā)生泄漏喘帚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一咒钟、第九天 我趴在偏房一處隱蔽的房頂上張望吹由。 院中可真熱鬧,春花似錦朱嘴、人聲如沸倾鲫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乌昔。三九已至,卻和暖如春壤追,著一層夾襖步出監(jiān)牢的瞬間磕道,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工行冰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溺蕉,地道東北人伶丐。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像疯特,于是被迫代替她去往敵國(guó)和親哗魂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評(píng)論 2 89
  • ORA-00001: 違反唯一約束條件 (.) 錯(cuò)誤說明:當(dāng)在唯一索引所對(duì)應(yīng)的列上鍵入重復(fù)值時(shí)漓雅,會(huì)觸發(fā)此異常录别。 O...
    我想起個(gè)好名字閱讀 5,317評(píng)論 0 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,103評(píng)論 1 32
  • “雨的氣味?” “那時(shí)下雨來著邻吞,聽得見雨點(diǎn)落地聲那么大的雨组题。但母親沒打傘就到外面走,拉著我的手一起走在雨中吃衅。季節(jié)是...
    1801仲泓宇閱讀 332評(píng)論 0 0
  • 中國(guó)文化就是這么迷人往踢,好像這三個(gè)字,大保健徘层,每個(gè)字都沒問題排惨,湊到一起就別有一番意思畔咧。 現(xiàn)在生活確實(shí)比以前好很多送膳,小...
    妖娥子廣州閱讀 693評(píng)論 0 3