目錄
人工智慧系列-python系列(六)檔案操作
一、文字模式開啟檔案
1.讀檔案
1)判斷是否可讀
2)讀取一行,如果使用了read讀取了,就是整個檔案都讀取了,就不能再讀取
3)讀取檔案所有內容,然後放到列表中
2.寫檔案
1)判斷是否可寫
3.追加檔案
4.讀寫檔案
5.修改檔案
6.with *** as ***檔案
7.關閉檔案
二、非文字模式開啟檔案
1.b的方式不能指定編碼
2.二進位制和其他編碼互轉
1)二進位制轉換成uft-8
2)uft-8換成二進位制
三.檔案的其他函式
1.如果不知道檔案編碼,就使用latin-1 ,拉丁編碼基本都支援
2.判斷檔案是否關閉
3.檔案編碼
4.重新整理檔案,修改檔案之後需要重新整理檔案,不然檔案就是沒有儲存的
5.檔案內游標移動
1)read(3):
2)其餘的檔案內游標移動都是以位元組為單位如seek,tell,truncate
6.讀取檔案中真正的換行符號newline
7.seek移動游標的位置
# 注意 open這裡讀取的格式是系統格式,所以這裡需要設定檔案格式
# 開啟檔案,得到檔案控制代碼並賦值給乙個變數
# r ,唯讀模式【預設模式,檔案必須存在,不存在則丟擲異常】
# w,只寫模式【不可讀;不存在則建立;存在則清空內容】
# a, 之追加寫模式【不可讀;不存在則建立;存在則只追加內容】
# 擴充套件:
# "+" 表示可以同時讀寫某個檔案
# r+, 讀寫【可讀,可寫】
# w+,寫讀【可讀,可寫】
# a+, 寫讀【可讀,可寫】
# file1 = open("file1", 'r+', encoding='utf-8')
# 通過控制代碼對檔案進行操作
# data = file1.read() # 預設情況是唯讀
# print(data) # 列印檔案內容
print(file1.readable()) #
print(file1.readline())
print(file1.readlines())
# file1.write('1-2222222222\n')
# file1.write('2-2222222222\n')
# file1.write('3-2222222222\n')
# print(file1.writable()) #
# names = ['111\n', '222\n', '333\n'] # 檔案內容只能是字串
# file1.writelines(names)
# 如果 open("file1", 'a', encoding='utf-8') 這裡的模式設定的是a ,write就是追加寫
# file1.write("kkkk") # 這裡是覆蓋檔案
# content = file1.read()
# print(content)
# 把檔案中的111全部替換成一一一
# datas = file1.readlines()
# datasc =
# print(datas)
# for data in datas:
# data = data.replace('111', '一一一')
# print(datasc)
# file1.writelines(datasc)
# file1.write("hhhh")
# with open('file1','r+',encoding='utf-8') as f1:
# with open('file1', 'r', encoding='utf-8') as f1, \
# open('file2', 'w', encoding='utf-8') as f2:
# f1_data = f1.read()
# f2.write(f1_data)
# f1.close()
# f2.close()
file1.close()
# 對於非文字檔案,我們只能使用b模式,"b"表示以位元組的方式操作(而所有檔案也都是以位元組的形式儲存的,
# rb、wb、ab
# 注:以b方式開啟時,讀取到的內容是位元組型別,寫入時也需要提供位元組型別,不能指定編碼
# file1 = open('file1', 'rb+')
# data = file1.read()
# print(data) # rb讀取的是二進位制
# encode:字串--bytes
# decode:bytes--字串
# print(data.decode('utf-8')) # 二進位制轉換成uft-8
# file1.write('===你你你'.encode('utf-8'))
# file1.write(bytes('+++我我我', encoding='utf-8'))
file1 = open('file1', 'r', encoding='utf-8')
print(file1.closed) # false
print(file1.encoding) # utf-8
# file1.flush()
# print(file1.name) # file1 檔案名字
# a)檔案開啟方式為文字模式時,代表讀取3個字元
# b)檔案開啟方式為b模式時,代表讀取3個位元組
# a)seek有三種移動方式0,1,2,其中1和2必須在b模式下進行,但無論哪種模式,都是以bytes為單位移動的
# b)truncate是截斷檔案,所以檔案的開啟方式必須可寫,但是不能用w或w+等方式開啟,因為那樣直接清空檔案了,所以truncate要在r+或a或a+等模式下測試效果
# tell 游標所在位置
# print(file1.tell()) # 0
# file1.readline()
# print(file1.tell()) # 18
file2 = open('file2', 'r', encoding='utf-8', newline='')
print(file1.readlines())
print(file2.readlines())
# file1.seek()
file1.seek(5)
print(file1.tell()) # 5
file1.seek(32)
print(file1.tell())
參考資料;
人工智慧系列-python系列(六)檔案操作 Python系列課程 人工智慧篇簡單入門
1 基礎篇 基於python的機器學習 戳我,立即學習 現在大熱 為未來電腦科學發展方向的機器學習了解多少呢?下面推薦的這個內容比較適合小白,如果數學 模型理論基礎不紮實也沒關係,可以掌握python程式語言基本可以輕鬆學習 例如利用python程式語言實現線性分類器 支援向量機 樸素貝葉斯等經典機...
21天實戰人工智慧系列 人工智慧產品經理最佳實踐
感謝關注天善智慧型,走好資料之路 歡迎關注天善智慧型,我們是專注於商業智慧型bi,人工智慧ai,大資料分析與挖掘領域的垂直社群,學習,問答 求職一站式搞定!課程名稱 21天實戰人工智慧系列 人工智慧產品經理最佳實踐 課程目標 洞察ai業務能力 熟悉ai基礎理論 發展趨勢 面臨問題和當前現狀 熟悉ai...
人工智慧普及系列 中國AI人工智慧人才需求現狀分析
當前,人工智慧領域的競爭,主要體現為人才之爭。我國ai人才以80後作為主力軍,主要分布在北京 上海 深圳 杭州 廣州,人才需求量也以這些城市居多。根據相關資料顯示,中國592家公司中約有39200位員工,而中國對於ai人才的需求數量已經突破百萬,但國內ai領域人才 量卻很少,人才嚴重短缺,中小企業招...