人工智慧系列 Python系列(六)檔案操作

2021-09-24 11:19:47 字數 4282 閱讀 1118

目錄

人工智慧系列-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領域人才 量卻很少,人才嚴重短缺,中小企業招...