溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾

發(fā)布時間:2020-09-20 10:27:15 來源:腳本之家 閱讀:225 作者:Be_melting 欄目:開發(fā)技術

修改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系統(tǒng)下)

絕對路徑和相對路徑

'C:\\Users\\86177\\Desktop' #絕對路徑
'./practice' #相對路徑

建議在進行項目時候新創(chuàng)建一個文件夾,將所有的.py文件放在一起,使用相對路徑讀取數(shù)據(jù)

列出當前程序文件夾下所有內(nèi)容

import os
os.listdir()

默認返回的全部內(nèi)容的一個列表,類似于全局的方法dir(),可以查看全部的內(nèi)容

判斷文件還是文件夾

import os
files = os.listdir()
for file in files:
 print(file, os.path.isdir(file))

結果輸出:文件夾名稱,F(xiàn)alse(不是文件夾) True(是文件夾)

推薦的使用方式

import os
for file in os.scandir():
 print(file.name, file.path, file.is_dir())

結果輸出的是:文件夾名稱,路徑和是否是文件夾的判斷

綜合應用

編寫一個python程序,示例文件夾內(nèi)容如下,要求:

(1)找出當前目錄下所有非文件夾的文件

(2)統(tǒng)計其中包含‘python'單詞的文件數(shù)量

(3)不區(qū)分大小寫,即大寫和小寫都包括在內(nèi)

(4)輸出文件數(shù)量

python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾

參考代碼如下:

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單詞的文件數(shù)量有{}個,\n文件分別為{}'.format(len(ls_python),ls_python))

輸出結果如下:

python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾

擴展延伸(選讀)

如果對于'Python'不區(qū)分大小寫這句話的理解為:可以有任意的大小寫字母組成python這個單詞就可以,比如Python,輸入法轉換錯誤寫成了pYTHON,或者PYthon,這個后再進行文件的數(shù)量篩選。

這里將示例的文件夾內(nèi)容增加幾個含有python的文件,如下:

python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾

如果還使用上面的方式就顯得笨重,推薦使用re庫(正則表達式庫,專門處理字符串數(shù)據(jù)),下面代碼是基于以上代碼,如下:

import re
ls_name = []
for name in ls_file:
 pat = '.*python.*'
 match = re.match(pat,name,re.I)
 #re.I代表不區(qū)分大小寫
 try:
  ls_name.append(match.group())
 except:
  pass

print('含有python單詞的文件數(shù)量有{}個,\n文件分別為{}'.format(len(ls_name),ls_name))

如果對于re庫感興趣可以自學,這里只做拋磚引玉,結果輸出如下:

python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾

總結

以上所述是小編給大家介紹的python系統(tǒng)指定文件的查找只輸出目錄下所有文件及文件夾,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI