您好,登錄后才能下訂單哦!
修改python運行路徑
import os os.chdir('C:/Users/86177/Desktop') os.chdir(r'C:\Users\86177\Desktop') os.chdir('C:\\Users\\86177\\Desktop')
路徑加載連接的三種方式:'/'、 ‘\' 、 r''
獲得當前python程序運行路徑
import os print(os.getced())
輸出結果為:‘C:\Users\86177\Desktop'(當前程序在的路徑)
python自動路徑連接
import os os.path.join('Myprojects', 'AI')
輸出結果為:‘Myprojects\AI'(windows系統下)
絕對路徑和相對路徑
'C:\\Users\\86177\\Desktop' #絕對路徑 './practice' #相對路徑
建議在進行項目時候新創建一個文件夾,將所有的.py文件放在一起,使用相對路徑讀取數據
列出當前程序文件夾下所有內容
import os os.listdir()
默認返回的全部內容的一個列表,類似于全局的方法dir(),可以查看全部的內容
判斷文件還是文件夾
import os files = os.listdir() for file in files: print(file, os.path.isdir(file))
結果輸出:文件夾名稱,False(不是文件夾) True(是文件夾)
推薦的使用方式
import os for file in os.scandir(): print(file.name, file.path, file.is_dir())
結果輸出的是:文件夾名稱,路徑和是否是文件夾的判斷
綜合應用
編寫一個python程序,示例文件夾內容如下,要求:
(1)找出當前目錄下所有非文件夾的文件
(2)統計其中包含‘python'單詞的文件數量
(3)不區分大小寫,即大寫和小寫都包括在內
(4)輸出文件數量
參考代碼如下:
import os os.chdir(r'D:\python_major\auto_office1') ls_file = [] ls_dir = [] for file in os.scandir(): if file.is_dir(): ls_dir.append(file.name) else: ls_file.append(file.name) print("文件夾的總量是{},\n文件為別為{}".format(len(ls_dir),ls_dir)) print('\n{}\n'.format('-'*30)) print("非文件夾的文件總量是{},\n文件為別為{}".format(len(ls_file),ls_file)) print('\n{}\n'.format('-'*30)) ls_python = [] for name in ls_file: if ('python' in name) or('Python'in name): ls_python.append(name) print('含有python單詞的文件數量有{}個,\n文件分別為{}'.format(len(ls_python),ls_python))
輸出結果如下:
擴展延伸(選讀)
如果對于'Python'不區分大小寫這句話的理解為:可以有任意的大小寫字母組成python這個單詞就可以,比如Python,輸入法轉換錯誤寫成了pYTHON,或者PYthon,這個后再進行文件的數量篩選。
這里將示例的文件夾內容增加幾個含有python的文件,如下:
如果還使用上面的方式就顯得笨重,推薦使用re庫(正則表達式庫,專門處理字符串數據),下面代碼是基于以上代碼,如下:
import re ls_name = [] for name in ls_file: pat = '.*python.*' match = re.match(pat,name,re.I) #re.I代表不區分大小寫 try: ls_name.append(match.group()) except: pass
print('含有python單詞的文件數量有{}個,\n文件分別為{}'.format(len(ls_name),ls_name))
如果對于re庫感興趣可以自學,這里只做拋磚引玉,結果輸出如下:
總結
以上所述是小編給大家介紹的python系統指定文件的查找只輸出目錄下所有文件及文件夾,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。