10
A
回答
25
是的,有。 Python方式更好。
有三種可能性:
1)像File.listFiles():
Python有功能os.listdir(路徑)。它像Java方法一樣工作。
2)路徑圖案與膨脹水珠:
模塊水珠包含功能列出使用Unix外殼狀的圖案,例如在文件系統上的文件
files = glob.glob('/usr/joe/*.gif')
3)文件遍歷與步行:
真好看是Python的os.walk功能。
walk方法返回一個生成函數,遞歸地列出給定起始路徑下的所有目錄和文件。
一個例子:
import os
from os.path import join
for root, dirs, files in os.walk('/usr'):
print "Current directory", root
print "Sub directories", dirs
print "Files", files
你甚至可以在飛行中從「迪爾斯」,以避免走路到該目錄刪除目錄:如果「喬」在顯示目錄:dirs.remove(「喬」),以避免走進被稱爲目錄「喬」。
2
直接從Python的Refererence圖書館
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
3
嘗試 「listdir同時()」 os模塊(docs)中:
import os
print os.listdir('.')
2
看看os.walk()
和例子here。用os.walk()
可以輕鬆處理整個目錄樹。
從上面的鏈接的一個例子...
# Delete everything reachable from the directory named in 'top',
# assuming there are no symbolic links.
# CAUTION: This is dangerous! For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
os.remove(os.path.join(root, name))
for name in dirs:
os.rmdir(os.path.join(root, name))
2
如果你想要子目錄,也可以使用os.path.walk。
walk(top, func, arg) Directory tree walk with callback function. For each directory in the directory tree rooted at top (including top itself, but excluding '.' and '..'), call func(arg, dirname, fnames). dirname is the name of the directory, and fnames a list of the names of the files and subdirectories in dirname (excluding '.' and '..'). func may modify the fnames list in-place (e.g. via del or slice assignment), and walk will only recurse into the subdirectories whose names remain in fnames; this can be used to implement a filter, or to impose a specific order of visiting. No semantics are defined for, or required of, arg, beyond that arg is always passed to func. It can be used, e.g., to pass a filename pattern, or a mutable object designed to accumulate statistics. Passing None for arg is common.
2
我建議不要使用os.path.walk
,因爲它在Python 3.0中被刪除。 os.walk
更簡單,無論如何,或至少I找到它更簡單。
5
作爲一個長期的Pythonista,我不得不說std庫中的路徑/文件操作函數是次級的:它們不是面向對象的,它們反映了一個過時的,讓 - 包裝 - 操作系統 - 功能 - 無思維的哲學。我很願意推薦'path'模塊作爲包裝器(如果你必須知道的話,在os,os.path,glob和tempfile的附近):更好,更好:OOPy:http://pypi.python.org/pypi/path.py/2.2
這是walk()
dir = path(os.environ['HOME'])
for f in dir.walk():
if f.isfile() and f.endswith('~'):
f.remove()
1
您還可以檢查出Unipath,Python的os
,os.path
和shutil
模塊的面向對象的包裝。
例子:
>>> from unipath import Path
>>> p = Path('/Users/kermit')
>>> p.listdir()
Path(u'/Users/kermit/Applications'),
Path(u'/Users/kermit/Desktop'),
Path(u'/Users/kermit/Documents'),
Path(u'/Users/kermit/Downloads'),
...
安裝過奶酪店:
$ pip install unipath
0
看到我在Python編程了很長一段時間,我已經多次使用了os模塊,使我自己的函數打印目錄中的所有文件。
該函數的代碼:
import os
def PrintFiles(direc):
files = os.listdir(direc)
for x in range(len(files)):
print("File no. "+str(x+1)+": "+files[x])
PrintFiles(direc)
相關問題
- 1. Python的 - 需要遍歷目錄尋找TXT文件
- 2. C#遍歷類成員來尋找一個特定的條件
- 3. 在Java中遍歷一個日誌文件。拉文件掃描
- 4. 遍歷與LXML XML在Python
- 5. 只給出一個遍歷時尋找二叉樹的另外兩個遍歷
- 6. 如何遍歷Python中的文件夾
- 7. 遍歷Java中的所有文件
- 8. 遍歷在Java中
- 9. 遍歷會議尋找特定值
- 10. 迭代遍歷foreach循環尋找值
- 11. 遍歷在Python
- 12. 遍歷在Python
- 13. 遍歷在Python
- 14. 遍歷在Python
- 15. 遍歷在Python
- 16. 遍歷在Java
- 17. 樹的遍歷在Java中
- 18. utf-16在Python中尋找文件。怎麼樣?
- 19. 尋找與Python
- 20. Python中的遍歷Java地圖?
- 21. 在python遍歷計數對
- 22. 遍歷數組--java
- 23. 斯卡拉遍歷Java函數
- 24. 通過遍歷一組值來在python中創建XML文件
- 25. 如何遍歷文件中的一行?
- 26. Python的遍歷多個文件
- 27. 遍歷SQL文件中的
- 28. 遍歷PowerShell中的文件
- 29. 遍歷Java的
- 30. 遍歷的java