python上一級目錄
㈠ python中os模塊提供的與目錄相關的函數有哪些呢
答案正確。以下是這些函數的具體說明:
os.getcwd():獲取當前工作目錄的路徑名。
os.listdir(path):列出指定目錄下的所有文件和子目錄(不包含 . 和 .. 目錄)。
os.mkdir(path[, mode]):創建一個新目錄,其中 path 參數是要創建的目錄路徑名,mode 參數是可選的,指定目錄許可權,默認為 0777。
os.makedirs(path1/path2…[, mode]):遞歸創建多層目錄結構,其中 path1/path2… 參數是要創建的目錄路徑名,在這個路徑下逐層創建目錄,並且可以遞歸創建多層帶握目錄,mode 參數是可選的,指定目錄許可權,默認為 0777。
os.rmdir(path):刪除指定的目錄,前提是這個目錄必須為空,否則無法刪除。
os.removedirs(path1/path2…):遞歸刪除指定的目錄及其中的所有空目錄,其中 path1/path2… 參數是要刪除的目錄路徑名,在遞歸刪除過程中,若某個目錄不為空,則不會被刪除。
os.chdir(path):改變當前工作目錄,其中 path 參數表示要切換的目錄路徑名。
os.walk(top[, topdown[, onerror]]):以目錄樹形式遍歷指定目錄下的所有文件和子目錄,並返回一個三元組 (dirpath, dirnames, filenames),其中 dirpath 表示當前目錄路徑,dirnames 是當前目錄下的所有子目錄名,filenames 是當前目錄下的所有非目錄文件名。當 topdown 參數為 True 時,表示先遍歷一級目錄,再判斷是否需要遞歸遍歷其它子目錄,默認值為 True;當 onerror 參數不為 None 時,表示如果在遍歷目錄樹時遇到錯誤是否拋出異常(否則該錯誤直接被忽略),onerror 參數需要傳入一個函數,接受三個參數,分別是出現錯誤的根目錄、錯誤對象 Exception 和 traceback 對象。
以上是 os 模塊中的蠢正慶一些常用目錄相關函數。需要注意的是,對於一些有進行文件和目錄操作的函數,一定要清棗注意操作的許可權和路徑的正確性,避免在操作時發生不必要的錯誤。
㈡ python 怎麼引入上上級目錄的文件
用 os 模塊,上一級目錄是兩個點。
所以可以用這樣的如核方法,比如以下兩個用法:
import os
dirs = os.path.join( os.path.dirname(__file__),'../..'並亂) #上絕橡檔上級文件目錄名
os.sys.path.append(os.path.join( os.path.dirname(__file__), '../..')) #將上上級目錄載入到python的環境變數中。
㈢ Python導入上一級/下一級/任一級目錄下的.py文件問題
有如下目錄:
即python文件夾下有file1, file2, pfile.py, data.py,文件夾file1下又有file1_1, pfile1.py, 文件夾file2下有pfile2.py,文件夾file1_1下又有pfile1_1.py。
在文件pfile.py中導入pfile1.py, pfile2.py或 pfile1_1.py,並使用其中的函數(假設函數名分別文fun1(), fun2(), fun1_1()):
需要注意的是,這種導入方式下,如果要用導入的文件中的函數或者類,需要在其前面加上文件名,即 "文件名.函數名" 的形式 。
有些教程裡面說,需要在下一級目錄下新建一個空的python文件命名為 __init__.py,但我在運行時發現不建一個文件也會導入成功。
如果要在pfile1.py中調用pfile.py 和 pfile2.py,因為當前路徑是 '/home/puxitong/python/file1/' ,而 pfile.py和pfile1.py在路徑'/home/puxitong/python/' 及其子路徑下,這里的思路是將上一級目錄 '/home/puxitong/python/' 添加在系統路徑中,可以直接訪問pfile.py,然後將pfile2.py 按照下一級路徑導入方式進行導入:
如果要在pfile1_1.py中導入pfile.py, pfile1.py, pfile2.py呢? 原理是一樣的,即將文件pfile.py所在路徑添加到系統路徑中,可直接導入pfile.py, 再按照下級文件導入方式導入pfile1.py和pfile2.py:
㈣ python--目錄操作
一、os.getcwd()
獲取當前工作目錄,即當前Python腳本工作的目錄路徑。
二、os. chdir(path)
改變當前腳本工作目錄;相當於shell下的cd命令。
三、os.pardir
返回當前目錄的父目錄('..')
四、獲取當前使用的操作系統類型(其中 『nt』 是 windows,』posix』 是linux 或者 unix)。
五、os.mkdir(path [, mode=0777])
生成單級目錄;相當於linux中的mkdir dirname。參數mode表示生成的目錄的許可權,默認是超級許可權,也就是0777。如果重復創建,會報錯
六、os.makedirs(path [, mode=0777])
可生成多層遞歸目錄,父目錄如果不存在,遞歸生成。參數mode表示生成的目錄的許可權,默認是超級許可權,也就是0777。
七、os.removedirs(path)
若目錄為空,則刪除,並遞歸到上一級目錄,如若也為空,則刪除,依次類推。
八、os.rmdir(path)
刪除單級空目錄,若目錄不為空則無法刪除,會報錯;相當Linux中的rmdir dirname。
九、os.listdir(path)
列出指定目錄下的所有文件和子目錄,包括隱藏文件或目錄,並以列表形式返回。
十、os.remove(filePath)
刪除一個指定的文件,參數filePath表示文件所在的路徑。
注意:該方法只能刪除文件,不能刪除目錄。
十一、os.rename(oldname, newname)
重命名文件/目錄。
十二、os.access(path, mode)
輸出文件許可權模式。
十三、os.chmod(path, mode)
修改文件的許可權。
十四、os.walk(top, topdown=True, onerror=None, followlinks=False)
➢top:表示需要遍歷的目錄樹的路徑。
➢topdown的默認值是「True」,表示首先返回目錄樹下的文件,然後遍歷目錄樹下的子目錄。值設為False時,則表示先遍歷目錄樹下的子目錄,返回子目錄下的文件,最後返回根目錄下的文件。
➢onerror的默認值是「None」,表示忽略文件遍歷時產生的錯誤。如果不為空,則提供一個自定義函數提示錯誤信息後繼續遍歷或拋出異常中止遍歷。
➢該函數返回一個列表,列表中的每一個元素都是一個元組,該元組有3個元素,分別表示每次遍歷的路徑名,目錄列表和文件列表。
➢默認情況下,os.walk 不會遍歷軟鏈接指向的子目錄,若有需要請將followlinks設定為true
十五、os.path.split(path)
將path分割成目錄和文件名(事實上,如果你完全使用目錄,它也會將最後一個目錄作為文件名而分離,同時它不會判斷文件或目錄是否存在),並存於元組中返回。
十六、os.path.exists(path)
判斷path是否存在,如果存在返回True,否則返回False。
十七、os.path.isfile(path)
判斷path是否是文件,如果是返回True,否則返回False。
十八、os.path.isdir(path)
判斷path是否是目錄,如果是目錄返回True,否則返回False。
十九、os.path.getsize(name)
獲得文件大小,如果name是目錄返回結果是0L或者4096L;如果name代表的目錄或文件不存在,則會報WindowsError異常。
二十、os.path.join(a, *p)
連接兩個或更多的路徑名,中間以「\」分隔,如果所給的參數中都是絕對路徑名,那先給的絕對路徑將會被丟棄。
二十一、os.path.getatime(filename)
返迴文件的最後訪問時間,返回的是時間戳。
二十二、os.path.getctime(filename)
以時間戳的形式返迴文件或目錄的創建時間,在Unix系統上是文件最近更改的時間,在Windows上是文件或目錄的創建時間。
1.基礎題:
檢驗給出的路徑是否是一個文件:os.path.isfile("D:\\test.txt")
檢驗給出的路徑是否是一個目錄:os.path.isdir("D:\\test.txt")
判斷是否是絕對路徑:os.path.isabs("D:\\test.txt")
檢驗給出的路徑是否真地存在:
2.返回一個路徑的目錄名和文件名 :os.listdir("D:\\")
3.分離文件名與擴展名 :os.path.splitext("D:\\test.txt")
4.找出某個目錄下所有的文件,並在每個文件中寫入「gloryroad」 :
>>> for files in os.walk("D:\\test"):
... print(files)
...
('D:\\test', [], ['a.txt', 'b.txt', 'test.txt', 'test1.txt'])
>>> with open("D:\\test\\a.txt","w+") as f:
... f.write("gloryroad")
5.如果某個目錄下文件名包含txt後綴名,則把文件後面追加寫一行「被我找到了!」
6. 命題練習:
1) 一個目錄下只有文件(自己構造),拷貝幾個文件(手工完成)
2 )用listdir函數獲取所有文件,如果文件的創建時間是今天,那麼就在文件裡面寫上文件的路徑、文件名和文件擴展名
3) 如果不是今天創建(獲取文件的創建時間,並轉化為時間格式,判斷是否今天),請刪除
4 )計算一下這個程序的執行耗時
7.刪除某個目錄下的全部文件
8.統計某個目錄下文件數和目錄個數
9.使用程序建立一個多級的目錄,在每個目錄下,新建一個和目錄名字一樣的txt文件
10. 查找某個目錄下是否存在某個文件名
11. 用系統命令拷貝文件
12.輸入源文件所在路徑和目標目錄路徑,然後實現文件拷貝功能
13.遍歷某個目錄下的所有圖片,並在圖片名稱後面增加
14、遍歷指定目錄下的所有文件,找出其中佔用空間最大的前3個文件
15、過濾py源碼中的#注釋,另存為文件result.py,並執行result.py,斷言是否執行成功
16、文件訪問,提示輸入數字 N 和文件 F, 然後顯示文件 F 的前 N 行.
17、從命令行接受1個路徑如:c:\a\b\c\1.py, 實現1個函數創建目錄a\b\c,創建文件1.py,實現1個函數刪除已創建的目錄及文件
18、有一個ip.txt,裡面每行是一個ip,實現一個函數,ping 每個ip的結果,把結果記錄存到ping.txt中,格式為ip:0或ip:1 ,0代表ping成功,1代表ping失敗
19、實現DOS命令執行功能,接受輸入命令並執行,然後把執行結果和返回碼列印到屏幕
20、文件訪問
訪問一存在多行的文件,實現每隔一秒逐行顯示文本內容的程序,每次顯示文本文件的 5行, 暫停並向用戶提示「輸入任意字元繼續」,按回車鍵後繼續執行,直到文件末尾。
顯示文件的格式為:[當前時間] 一行內容,比如:[2016-07-08 22:21:51] 999370this is test