Python 中的文件操作

************************* 路徑 *************************
  1. 絕對路徑:完整的路徑,從最初開始
    如:E:\tools\workspace\myfile.txt

  2. 相對路徑
    ./當前路徑(相對於當前的python文件,如:./myfile.txt

************************* 讀 *************************

open(file=路徑,mode=模式,encoding=編碼格式)

mode = "r" 從開頭讀,讀的是字符,需要指定文件的編碼格式
mode = "rb" 從開頭讀,讀的是字節,不需要指定文件的編碼格式

字符 = 字節+解碼

read() 從頭讀到尾,如果讀取不到,返回""
read(num) 讀幾個,如果讀取不到,返回""
readline() 讀一行,如果讀取不到,返回""
readlines() 將所有的行放到列表中,返回,如果讀取不到,返回[]

************************* 寫 *************************

open

字符的操作:
	mode="w"   寫字符,從頭寫
	mode="a"   寫字符串,續寫
	
字節的操作:
	mode="wb"  
	mode="ab"
	mode = "w" 寫字符
	mode = "wb" 寫字節
	
在寫的時候,w,從頭開始寫
    如果文件不存在,創建
    如果文件存在,清空文件

write() 從頭開始寫,如果文件不存在,創建;如果文件存在,清空文件
writelines() 將列表中的數據挨個寫入

如果在讀寫文件的過程中,需要從另外一個位置進行操作的話,可以使用seek()

************************* with *************************
file_path = r"./files/myfile.txt"
with open(file=file_path, mode="r",encoding="utf-8") as my_file:
    print(my_file.read())
************************* os *************************
  1. os.sep
    獲得當前操作系統使用的目錄分隔符,
    比如 Windows 就會得到\而 Linux/Unix 就會得到/
    os.linesep
    獲取操作系統的換行符號
    window -> \r\n linux/unix -> \n

  2. os.name
    獲得當前使用的操作系統,Windows 是 NT 內核,所以會得到 nt,
    而 Linux/Unix 用戶則會得到 posix

  3. os.getcwd()
    得到當前工作目錄,即當前 Python 腳本工作的目錄路徑

  4. os.listdir(path)
    返回指定目錄 path 下的所有文件和目錄名

  5. os.remove(path)
    刪除一個文件

  6. os.chdir(dirname)
    改變工作目錄到 dirname

  7. os.rename(src, dst)
    重命名-可以完成剪切

  8. os.mkdir(path)
    創建一級目錄

  9. os.makedirs(path)
    遞歸的創建多級目錄

  10. os.walk(path)
    遞歸返回path下的目錄(包括 path 目錄)、子目錄、文件名的三元組

************************* os.path *************************
  1. os.path.isfile()os.path.isdir()
    分別檢驗給出的路徑是一個文件還是目錄。

  2. os.path.exists()
    用來檢驗給出的路徑是否真地存在

  3. os.path.getsize(name)
    獲得文件大小,如果 name 是目錄返回 0L

  4. os.path.abspath(name)
    獲得絕對路徑

  5. os.path.normpath(path)
    規範path字符串形式

  6. os.path.split(path)
    將path分割成目錄和文件名二元組返回

  7. os.path.splitext()
    分離文件名與擴展名

  8. os.path.join(path,name)
    連接目錄與文件名或目錄;使用“\”連接

  9. os.path.basename(path)
    返回文件名

  10. os.path.dirname(path)
    返回文件路徑

************************* shutil *************************
  1. shutil.copyfile( src, dst)
    從源 src 複製到 dst 中去。當然前提是目標地址是具備可寫權限。
    拋出的異常信息爲 IOException. 如果當前的 dst 已存在的話就會被覆蓋掉

  2. shutil.move( src, dst)
    移動文件或重命名

  3. shutil.copymode( src, dst)
    只是會複製其權限其他的東西是不會被複制的

  4. shutil.copystat( src, dst)
    複製權限.最後訪問時間.最後修改時間

  5. shutil.copy( src, dst)
    複製一個文件到一個文件或一個目錄

  6. shutil.copy2( src, dst)
    在 copy 上的基礎上再複製文件最後訪問時間與修改時間也複製過來了

  7. shutil.copy2( src, dst)
    如果兩個位置的文件系統是一樣的話相當於是 rename 操作,只是改名;
    如果是不在相同的文件系統的話就是做 move 操作

  8. shutil.copytree( olddir, newdir, True/Flase)
    把 olddir 拷貝一份 newdir ,
    如果第3個參數是 True,則複製目錄時將保持文件夾下的符號連接,
    如果第3個參數是 False,則將在複製的目錄下生成物理副本來替代符號連接

  9. shutil.rmtree( src )
    遞歸刪除一個目錄以及目錄內的所有內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章