1. 程式人生 > >python 常用的OS模組、shutil庫(用於檔案操作)

python 常用的OS模組、shutil庫(用於檔案操作)

說明:
shutil庫為python內建庫,是一個對檔案及資料夾高階操作的庫,可以與os庫互補完成一些操作,如資料夾的整體複製,移動資料夾,對檔案重新命名等。

1、建立

os.mkdir(path+dir_name)
建立目錄(建立一級目錄)

os.makedirs(path+一級目錄+子目錄)
建立多級目錄。

2、刪除

os.remove(path)
刪除檔案

os.rmdir(path)
刪除目錄,目錄必須為空,否則報錯;

os.removedirs(path)
刪除多級目錄,刪除空資料夾 #資料夾非空時,會報錯,使用時候與rmdir沒有差異!!需要在理解!!!!!!!!!!!!!!!!!!!!!!!!!!

shutil.rmtree(path)
遞迴刪除資料夾,資料夾內可以 有內容

3、複製

shutil.copyfile(“oldfile”,”newfile”)
oldfile和newfile都只能是檔案

shutil.copy(“oldfile”,”newfile or 目錄”) (將要複製的檔案路徑;將要複製到的位置)
oldfile只能是資料夾,newfile可以是檔案,也可以是目標目錄
返回複製的檔案路徑

shutil.copytree(“olddir”,”newdir”)
olddir和newdir都只能是目錄,且newdir必須不存在

4、移動

shutil.move(“oldpos”,”newpos”)#
舊位置、新位置;

5、遍歷

os.walk(path)
返回一個物件,每個部分都是一個三元組 (‘目錄x’,[目錄x下的目錄list],目錄x下面的檔案) .需要迴圈遍歷,才可以將walk內容顯示

a= os.walk("/home/mengyue/PycharmProjects")
for i in a:
    print(i)

6、判斷資料夾是否存在、是否是資料夾、是否是檔案

os.path.exists(path)
如果path存在,返回True;如果path不存在,返回False。

os.path.exists
('c:\\csv\\test.csv') #False

os.path.isfile(path)
如果path是一個存在的檔案,返回True。否則返回False。

 os.path.isfile('c:\\boot.ini')#True
 os.path.isfile('c:\\csv\\test.csv')# False
 os.path.isfile('c:\\csv\\')  #False

os.path.isdir(path)
如果path是一個存在的目錄,則返回True。否則返回False。

 os.path.isdir('c:\\')  #True
 os.path.isdir('c:\\csv\\')#False

7、路徑獲取

os.path.abspath(path)
返回path規範化的絕對路徑。
(我一般,選擇某一個檔案,open in termial ; pwd ,獲取絕對路徑;)

os.curdir #(./)
返回當前工作目錄

os.getcwd()
返回當前目錄,所執行指令碼的目錄

def list_files():
    start_dir = input('請輸入待查詢的初始目錄:') 
    # /home/mengyue/PycharmProjects/remark/V1.5/verify_pic
#/home/mengyue/PycharmProjects/remark/V1.5  指令碼所在位置
list_files()
program_dir = os.getcwd()
print(program_dir)  #/home/mengyue/PycharmProjects/remark/V1.5
print(os.curdir)  # .
print(os.path.abspath(os.curdir)) 
 #/home/mengyue/PycharmProjects/remark/V1.5

os.path.isabs(path)
如果path是絕對路徑,返回True。

os.path.dirname(path)
返回path的上一級目錄

os.path.basename(path)
返回path最後的檔名。即os.path.split(path)的第二個元素。

os.path.split(path)
將path分割成目錄和檔名二元組返回
(目錄,檔名(或者資料夾名稱))

#print(os.path.dirname("/home/mengyue/PycharmProjects/remark/V1.5"))
#/home/mengyue/PycharmProjects/remark
# print(os.path.basename("/home/mengyue/PycharmProjects/remark/V1.5"))  
#V1.5
# print(os.path.split("/home/mengyue/PycharmProjects/remark/V1.5"))
 #('/home/mengyue/PycharmProjects/remark', 'V1.5')

os.path.commonprefix(list)
返回list中,所有path共有的最長的路徑。

os.path.commonprefix(['/home/td','/home/td/ff','/home/td/fff'])
'/home/td'

os.path.join(path1[, path2[, …]])**
將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略。

 os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
 os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')
'/home/aa/bb/c'

os.path.normcase(path)*
在Linux和Mac平臺上,該函式會原樣返回path,在windows平臺上會將路徑中所有字元轉換為小寫,並將所有斜槓轉換為飯斜槓。

os.path.normcase('c:/windows\\system32\\')
'c:\\windows\\system32\\'

os.path.normpath(path)**
規範化路徑。

os.path.normpath('c://windows\\System32\\../Temp/')
'c:\\windows\\Temp'

os.path.splitdrive(path)**
返回(drivername,fpath)元組

os.path.splitdrive('c:\\windows')
('c:', '\\windows')

os.path.splitext(path)
分離檔名與副檔名;預設返回(fname,fextension)元組,可做分片操作

os.path.splitext('c:\\csv\\test.csv')
('c:\\csv\\test', '.csv')

os.path.getsize(path)
返回path的檔案的大小(位元組),如果是目錄,返回OL

 os.path.getsize('c:\\boot.ini')
299L

os.path.getatime(path)**
返回path所指向的檔案或者目錄的最後存取時間。

os.path.getmtime(path)*
返回path所指向的檔案或者目錄的最後修改時間

其他重要的

os.chdir(path)
改變當前工作目錄到path

os.listdir()
os.listdir(path)返回path指定的資料夾包含的檔案或資料夾的名字列表

os.sep
更改作業系統中的路徑分隔符,比如window是\,linux /,macOS

os.linesep
給出當前平臺使用的終止符,win: ‘\r\n’,Linux使用’\n’而Mac使用’\r’

os.rename(src, dst)
重新命名檔案或目錄,從 src 到 dst

相關推薦

python 常用OS模組shutil(用於檔案操作)

說明: shutil庫為python內建庫,是一個對檔案及資料夾高階操作的庫,可以與os庫互補完成一些操作,如資料夾的整體複製,移動資料夾,對檔案重新命名等。 1、建立 os.mkdir(path+dir_name) 建立目錄(建立一級目

python常用序列listtuples及矩陣numpy的使用

dbf delete end for 技術分享 clas 養成 nump b- 近期開始學習python機器學習的相關知識,為了使後續學習中避免編程遇到的基礎問題,對python數組以及矩陣庫numpy的使用進行總結,以此來加深和鞏固自己以前所學的知識。 Section O

Python全棧學習筆記day 19:collections模組時間模組random模組os模組sys模組

  一、collections模組 1.namedtuple: 生成可以使用名字來訪問元素內容的tuple 2.deque: 雙端佇列,可以快速的從另外一側追加和推出物件         queue:佇列 3.Counter

Pythonos 模組常用方法簡介

os.getcwd()# 返回當前工作目錄 os.path.abspath(path)# 返回 path 的絕對路徑# os.path.abspath('.') 相當於 os.getcwd() os.path.split(path)# 返回 tuple(頭部, 尾部),尾部是最終斜線後的所有內容# 一般用

python_day12_模組標準常用模組

模組一旦被呼叫,即相當於執行了另外檔案裡的程式碼 模組分為三種: 內建標準庫 sys、os help(“modules”) 第三方模組、 通過pip install name 自定義模組 http://pypi.python.org 引用國內豆瓣源 pip

遞迴os.walk內建函式lambdahashlib模組md5加密python安裝第三方模組操作mysql資料庫

#遞迴就是函式自己調自己,一般遞迴都會有在什麼情況下結束遞迴,一業可以有結束條件#遞迴最多死迴圈999次,遞迴不能設定次數# count=0# def abc():# global count# count+=1# print(count)# print('abc')#

Python3.5——內建模組詳解之os模組sys模組shutil模組

1、os模組:提供對作業系統進行呼叫的介面 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.getcwd()) #獲取當前的操作目錄,即當前

python 檔案操作 os模組shutil模組

############################################################################ python中對檔案 / 資料夾的操作涉及到os模組和shutil模組 import os import sh

pythonos模組forkwaitsystemexecpopenexit函式講解

雖然程序可在單獨的記憶體空間中執行,但除非這些Python程序在單獨的處理器上執行,否則,實際並不是“同時”執行的。是由作業系統把處理器的時間片分配給一個程序,用完時間片後就需退出處理器等待另一個時間片的到來。另一種方式是在程式中指定多個“執行執行緒”,讓它們在相同的記憶體空

Python基礎總結之第九天開始【pythonOS模組對目錄的操作以及操作檔案】(新手可相互督促)

年薪20萬的夢想。。。         python對檔案、目錄能做什麼?或者說我們需要python替我們做什麼?最經常的操作就是對檔案的:開啟、關閉、讀取、寫入、修改、儲存等等對目錄的操作,無非就是:建立目錄、刪除目錄、更改目錄名字等等。我們先認識一下OS模組,os

python常用代碼問題匯總

org exce jin calendar site unit col oca pro 1、生成dataframe數據 5、讀取帶 ‘,‘分隔符的txt文件 4、DataFrame格式數據處理中報錯 2、安裝庫時出現如下錯誤: 3、得到股票交易日數據 1、生成dat

python常用的十進位制16進位制字串位元組串之間的轉換(長期更新帖)

進行協議解析時,總是會遇到各種各樣的資料轉換的問題,從二進位制到十進位制,從位元組串到整數等等 廢話不多上,直接上例子 整數之間的進位制轉換: 10進位制轉16進位制: hex(16)  ==>  0x10 16進位制轉10進位制: int('0

pythonos模組的作用

簡介 OS模組簡單的來說它是一個Python的系統程式設計的操作模組,可以處理檔案和目錄這些我們日常手動需要做的操作。如果你希望你的程式能夠與平臺無關的話,這個模組是尤為重要的。 常用函式和變數 os.sep可以取代作業系統特定的路徑分隔符。windows下為 “\” os.

pythonos模組的基本使用

import os匯入模組 os模組: os.sep        可以取代作業系統特定的路徑分割符 os.linesep       字串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n' 而Mac使用'\r'。 os.name    

【9】python關於os模組os.path的相關操作

  ---恢復內容開始---     #__author:"吉*佳" #date: 2018/10/20 0020 #function: # os模組知識點 import os # 獲取平臺名稱: 列印:nt代表windows posix 代表lin

pythonos模組的分析

  __author__ = 'MrChen'   import urllib.request import time import os   #使用build_opener()是為了讓python程式模仿瀏覽器進行訪問 opener = urllib.

pythonos模組中的os.walk()函式

os.walk('path')函式對於每個目錄返回一個三元組,(dirpath, dirnames, filenames), 第一個是路徑,第二個是路徑下面的目錄,第三個是路徑下面的檔案 如果加引數topdown=False則表示自下而上進行遍歷,預設為topdown=True即自上而下進行遍歷 &nb

pythonos模組操作檔案路徑

python中的os.path模組用法: dirname() 用於去掉檔名,返回目錄所在的路徑 如: >>> import os >>> os.path.dirname('d:\\library\\book.txt') >>>

python基礎】模組

目錄 <4> as 1、什麼是模組 有過C語言程式設計經驗的朋友都知道在C語言中如果要引用sqrt函式,必須用語句#include <math.h>引入math.h這個標頭檔案,否則是無法正

python常用的命令列解析

1、argparse argparse是python自帶的模組,要經歷解析器初始化、引數定義、解析一套流程,使用起來有些繁瑣。 argpase的使用: class Calculator(object): """ 計算器 """