日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

Python基礎之文件操作及光標移動詳解_python

作者:Kkkkangsh ? 更新時間: 2022-12-06 編程語言

一、文件操作

1、文件的概念

1.文件就是計算機暴露給用戶操作硬盤的快捷方式

2.計算機的文件,就是用來儲存某種信息的數(shù)據(jù)

3.在計算機中,文件是以二進制的方式儲存信息的

2、代碼打開文件的方式

方式一:
	f = open(文件路徑, 讀寫模式, encoding='utf8')
	f.close()
方式二:  # 子代碼運行結束后會自動調用close方法關閉資源
	with open(文件路徑, 讀寫模式,encoding='utf8') as f: 
須知:
# 1、open方法的第一個參數(shù)是文件路徑,并且撬棍跟一些字母的組合會產(chǎn)生特殊的含義導致路徑查找混亂 為了解決該問題可以在字符串的路徑前面加字母r
	D:\a\n\t
	r'D:\a\n\t'
# 2、with一次性可打開多個文件
	with open() as f1,open() as f2,open() as f3:

二、文件讀寫模式

1、'r' 只讀模式 read

	只能讀,不能寫
1.文件路徑不存在:直接報錯
	with open(r'b.txt','r',encoding='utf8') as f:
		print(f.read())
2.文件路徑存在:正常讀取內容
	with open(r'a.txt', 'r', encoding='utf8') as f:
		print(f.read())

2、'w' 只寫模式 write

	只能寫,不能看
1.文件路徑不存在:  # 創(chuàng)建新的文件
	with open(r'b.txt','r',encoding='utf8') as f:
		pass
2.文件路徑存在:  # 先清空文件內容,在重新寫入
	with open(r'a.txt', 'r', encoding='utf8') as f:
		f.write('編寫內容')
須知:
# 1、編寫的內容需要自己加入換行符,在保存后u而要注意他的存在

3、'a' 尾部追寫模式 add

	只能在文件末尾添加數(shù)據(jù)
1.文件路徑不存在:  # 創(chuàng)建新的文件
	with open(r'b.txt','a',encoding='utf8') as f:
		pass
2.文件路徑存在:  # 在文件末尾添加
	with open(r'a.txt', 'a', encoding='utf8') as f:
		f.write('編寫內容')

當我們在編寫代碼的時候 有些部分不知道寫什么具體代碼 但是也不能空著不寫
這個時候可以使用關鍵字: pass

作用:是為了保證程序結構的完整性,否則會報錯

三、文件操作模式

1、t 文本模式

	文本模式為默認模式
1、讀寫模式簡寫:r、w、a
       	全稱:rt、wt、at
須知:
# 1、只能操作文本文件
# 2、讀寫以字符為單位
# 3、需要指定encoding參數(shù),不填寫則采用計算機默認的編碼

2、b 二進制模式

	byte模式
1、不是默認的模式,需要指定生成
		rb、wb、ab
須知:
# 1、可以操作任意文件
# 2、讀寫都是以bytes為單位
# 3、不需要指定encoding參數(shù),不需要編碼

不管是哪種模式,針對文件路徑是否存在的情況都是一樣的

四、文件諸多方法

1、read()

代碼表現(xiàn):
	文件名.read()
須知:
#  1、一次性讀取文件內容,并且光標停留在文件末尾,繼續(xù)讀取則沒有內容
#  2、當文件內容比較多的時候,該方法還可能會造成計算機內存溢出
#  3、括號內可以填寫數(shù)字,在文本模式下,表示讀取幾個字符
#  4、通常一個中文三個字節(jié)(或更多)一個英文字母一個字節(jié)

2、for循環(huán)

代碼表現(xiàn):
    for 數(shù)據(jù)值 in 需要遍歷的文件:
須知:
# 1、一行行讀取文件內容 避免內存溢出現(xiàn)象的產(chǎn)生	

3、line

1、readline
	代碼表現(xiàn):
    文件名.readline()
	須知:
	# 1、一次只讀一行內容
2、readlines
	代碼表現(xiàn):
    文件名.readline()
   須知:
	# 1、一次性讀取文件內容,會按照行數(shù)組織成列表的一個個數(shù)據(jù)值

4、readable

代碼表現(xiàn):
	代碼表現(xiàn):
    文件名.readable()
須知:
# 1、判斷文件是否具備讀取數(shù)據(jù)能力

5、write

1、write
	用于向文件中寫入指定數(shù)據(jù)
	代碼表示:
    f = open("a.txt", 'w')
    f.write("寫入一行新數(shù)據(jù)")
    f.close()
2、writeable
	用來判斷文件是否可寫入數(shù)據(jù)
	代碼表示:
    f = open("nhooo.txt", "a")
    print(f.writable())
    	可以寫入: Ture
    	不可寫入: False
3、writelines
	用于接收一個列表,一次性將列表中所有數(shù)據(jù)寫入
	代碼表示:
    f = open('a.txt', 'r')
    n = open('b.txt','w+')
    n.writelines(f.readlines())
    n.close()
    f.close()

6、flush

用于刷新內部緩沖區(qū),這是在python中處理fila處理時的最佳實踐,可以在將新文本寫入/添加到文件之前清除內部緩沖區(qū)。將內存中文件數(shù)據(jù)立刻刷到硬盤 等價于ctrl + s

代碼表示:

	 file_object.flush()

五、文件內光標的移動

1、seek()

	移動文件的讀取指針到指定位置。seek函數(shù)需要使用文件對象進行調用,無返回值。
	seek()有三種用法:
   	seek(offset,whence)
    offset  控制光標移動的位移量(字節(jié))
    whence  模式
        0   基于文件開頭移動多少字節(jié)
        1   基于光標當前所在位置移動多少字節(jié)
        2   基于文件末尾移動多少字節(jié)
    ps:1和2只能在二進制模式下使用 0無所謂

2、tell()

	用來獲取光標當前的位置(移動的字節(jié)數(shù))
    代碼表示:
    文件名.tell()
    # 返回光標當前所在的字節(jié)數(shù)

原文鏈接:https://www.cnblogs.com/kangssssh/p/16772935.html

欄目分類
最近更新