「Python」:檔案讀寫

千鋒Python唐小強發表於2020-07-07

##############txt檔案讀寫##################

# txt檔案:記事本檔案,一般用來儲存測試日誌

# 方式1:

不推薦,每次讀寫結束都要寫file.close()語句用於關閉檔案.如果忘記寫關閉語句,容易造成內容洩露等問題.

# 寫

# file1 = open('1.txt','w') # 以寫(覆蓋)的方式開啟1.txt檔案;如果檔案不存在,則自動建立

# file1.write('hello,world!!!') # 向檔案裡面寫入字串hello,world

# file1.close() # 關閉開啟的檔案物件1.txt

# # 讀

# file1 = open('1.txt','r') # 以讀的方式開啟檔案

# result = file1.read() # 讀檔案裡面所有內容

# print(result) # 列印檔案內容

# file1.close() # 關閉開啟的檔案物件1.txt

# 方式2:

推薦,讀寫完成之後不需要每次寫關閉語句,會自動幫我們關閉開啟檔案物件

# 檔案開啟模式:r讀,w覆蓋寫,a追加寫,b二進位制,+(不常用);舉例:rb:以二進位制讀的方式開啟檔案

# 寫

# with open('1.txt','a') as file:

# file.write('handsome\nhello,world') # 以字串的方式寫入

# file.writelines(['\naaa\n','bbb\n']) # 以列表的方式寫入

# with open('1.txt','r') as file:

# result = file.read() # 讀所有內容,以字串型別返回

# result = file.readline() # 讀第一行,以字串型別返回

# result = file.readlines() # 讀所有行,以列表的形式返回,每行作為列表的一個成員,後面會自動帶上\n

# result = file.read().splitlines() # 讀多有行,以列表形式返回,每行作為列表的一個成員,後面會自動去掉\n

# print(result) # 列印讀取的結果

# 定義讀寫方法,實現讀寫功能

# def write_txt(file_name,content):

# with open(file_name,'a') as f:

# f.write(content)

# def read_txt(file_name):

# with open(file_name,'r') as f:

# result = f.read().splitlines()

# return result

# if __name__ == '__main__':

# write_txt('1.txt','oooooooooo\n')

# result = read_txt('1.txt')

# print (result)

# 定義讀寫方法,替換指定字元

# def change_txt(file_name,a,b):

# with open(file_name,"r",encoding="utf-8") as f:

# res = f.read()

# res = res.replace(a,b)

# with open(file_name,"w",encoding="utf-8") as f:

# f.write(res)

# def read_txt(file_name):

# with open(file_name,"r",encoding="utf-8") as f:

# res = f.read()

# print(res)

# change_txt("qz3.txt","班","ban")

# read_txt("qz3.txt")

##############csv檔案讀寫################

# csv:逗號分割值,是一個純文字檔案,通常用來儲存測試資料;佔用空間比excel檔案小得多,在windows系統上預設使用excel開啟,可以右鍵使用記事本開啟

# 寫

# import csv # 匯入csv包

# with open('2.csv','a',newline='',encoding='utf8') as f: # newline=''解決每次多寫入一個空行的問題;encoding='utf8'防止寫入結果亂碼的問題

# obj = csv.writer(f) # 得到一個寫csv檔案的物件

# obj.writerow(['4','xiejian','20']) # 向csv檔案寫入一行記錄

# obj.writerow(['5','李賤','18'])

# 讀

# import csv

# with open('2.csv','r',encoding='utf8') as f:

# obj = csv.reader(f)

# for i in obj:

# print(i)

#定義讀寫方法,實現讀寫操作

# def write_csv(file_name,content):

# import csv

# with open(file_name,'a',newline='',encoding='utf8') as f:

# obj = csv.writer(f)

# obj.writerow(content)

# def read_csv(file_name):

# import csv

# result = [] # 用來存放csv檔案中的每一行內容

# with open(file_name,'r',encoding='utf8') as f:

# obj = csv.reader(f)

# for i in obj:

# result.append(i)

# return result

#

# if __name__ == '__main__':

# # write_csv('2.csv',['6','liujian','38'])

# result = read_csv('2.csv')

# print(result)

# print(type(result))

################excel檔案讀寫###################

# pip install xlrd,xlwt # 安裝庫檔案,可以在dos命令視窗執行

# #讀

# import xlrd

# workbook = xlrd.open_workbook("2.xlsx")

# sheet1 = workbook.sheets()[0]

# nrows = sheet1.nrows

# print("表格總列數:",nrows)

# ncols = sheet1.ncols

# print("表格總行數:",ncols)

# row3_values = sheet1.row_values(2)

# print("第三行的值:",row3_values)

# col3_values = sheet1.col_values(2)

# print("第三列的值:",col3_values)

# cell_3_3 = sheet1.cell(2,2).value

# print("第三行第三列的單元格的值:",cell_3_3)

#寫

# import xlwt

# workbook = xlwt.Workbook()

# worksheet = workbook.add_sheet('test')

# worksheet.write(0,0,"姓名")

# worksheet.write(0,1,"性別")

# worksheet.write(0,2,"年齡")

# worksheet.write(0,3,"地址")

# workbook.save("test1.xlsx")

# 讀取列表裡面的資料,寫入到excel檔案

# import xlwt

# list1 = [["謝","男","18","火星"],["賤","女","18","地球"]]

# workbook = xlwt.Workbook()

# worksheet = workbook.add_sheet('test')

# for i in range(len(list1)):

# for j in range(len(list1[i])):

# worksheet.write(i,j,list1[i][j])

#

# workbook.save("test1.xlsx")

#定義讀寫方法

# def read_excel(file_name,index):

# excel = xlrd.open_workbook(file_name) # 開啟一個excel檔案

# sheet = excel.sheets()[index] # 得到表單物件

# return sheet

# if __name__ == '__main__':

# table = read_excel('2.xlsx',0) # 得到索引為0的sheet

# for i in range(table.nrows): # table.nrows返回行數

# rows = table.row_values(i) # 得到指定行的所有內容,以列表形式返回

# print (rows) # 列印一整行內容

# print(rows[1]) # 列印每行的第二個成員,也就是下標為1的成員內容

#################xml檔案讀寫#################

# xml: 可擴充套件標記語言,通常用來做配置檔案

# 讀:

# 方式1 : DOM,文件物件模型(document object modle),不推薦,比較麻煩

# 方式2 : elementtree

# import xml.etree.ElementTree as ET # 匯入模組並重新命名

# def read_xml(file_name,node_name):

# datas = [] # 定義一個空列表,用來儲存指定節點的內容

# tree = ET.parse(file_name) # 得到元素樹

# root = tree.getroot() # 得到樹的根

# for i in root.iter(node_name): # 迴圈遍歷指定名稱的所有節點

# datas.append(i.text) # 講遍歷的節點值寫入列表

# return datas # 返回列表

# if __name__ == '__main__':

# result = read_xml('./2.xml','username')

# print(result)

「Python」:檔案讀寫


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2703012/,如需轉載,請註明出處,否則將追究法律責任。

相關文章