Znajdź wszystkie pliki w katalogu

Jak możemy znaleźć plik na komputerze z Pythonem? Istnieje wiele sposobów, aby to zrobić, zacznijmy od pierwszego.

za pomocą systemu operacyjnego.listdir ()

wystarczy zaimportować moduł systemu operacyjnego i można z niego korzystać.funkcja listdir, aby móc zobaczyć wszystkie pliki w katalogu. W Pythonie 3, Jeśli nie umieścisz niczego jako argumentu w nawiasie okrągłym, zwróci ci to listę wszystkich plików i folderów bieżącego katalogu., W Pyton 2 musisz użyć os.listdir(„.”), aby zobaczyć pliki w bieżącym katalogu.

# First tryimport osf_list = os.listdir()

Jeśli chcesz mieć konkretny katalog, musisz podać ścieżkę jako argument.

os.listdir("C:\\documents")

w tym przykładzie możesz przejrzeć pliki w folderze Dokumenty dysku twardego C:

os.listdir (): get files in current dir (Python 3)

najprostszym sposobem, aby mieć plik w bieżącym katalogu w Pythonie 3 jest to., To naprawdę proste, użyj modułu systemu operacyjnego i funkcji listdir (), a będziesz miał plik w tym katalogu (i ewentualnie foldery, które są w katalogu, ale nie będziesz miał pliku w podkatalogu, do tego możesz użyć walk – o tym opowiem później).

import osarr = os.listdir()arr

uzyskanie pełnej nazwy ścieżki

jak zauważyłeś, nie masz pełnej ścieżki do pliku w powyższym kodzie. Jeśli potrzebujesz ścieżki bezwzględnej, możesz użyć innej funkcji systemu operacyjnego.moduł path o nazwie _getfullpathname, umieszczający plik, który otrzymujesz z systemu operacyjnego.listdir () jako argument., Są inne sposoby, aby mieć pełną ścieżkę, jak sprawdzimy później(zastąpiłem, zgodnie z sugestią mexmex, _getfullpathname z abspath).

Get the full path name of a type of file into all subdirectors with walk

I find this very useful to find stuff in many directory and it helped me finding a file about which I didn ' t remember the name:

import osthisdir = os.getcwd()for r, d, f in os.walk(thisdir): for file in f: if ".docx" in file: print(os.path.join(r, file))

os.listdir(): pobranie plików w bieżącym katalogu (Python 2)

import osarr = os.listdir('.')arr# output: 

aby przejść do góry w drzewie katalogów

# method 1x = os.listdir('..')# method 2x = os.listdir('/')

pobierz pliki: os.,listdir () w określonym katalogu (Python 2 i 3)

import osarr = os.listdir('F:\\python')arr# output: 

pobiera pliki określonego podkatalogu z systemem operacyjnym.listdir ()

import osx = os.listdir("./content")

os.spacer („.') – bieżący katalog

import osarr = next(os.walk('.'))arr# output: 

moduł glob – wszystkie pliki

import globprint(glob.glob("*"))# output: 

next(os.spacer („.”)) i os./ align = „left” / join (’dir',’file')

next(os.walk (’F:\') – get the full path – list comprehension

os.walk-get full path-wszystkie pliki w sub dirs

x = x# output# 

os.,listdir() – pobiera tylko pliki txt

arr_txt = print(arr_txt)# output: 

glob – pobiera tylko pliki TXT

import globx = glob.glob("*.txt")x# output: 

używając glob aby uzyskać pełną ścieżkę plików

Jeśli powinienem potrzebować bezwzględnej ścieżki plików:

inne użycie glob

Jeśli chcę wszystkie pliki w katalogu:

x = glob.glob("*")

używając systemu operacyjnego./ align = „left” / isfile, aby uniknąć katalogów na liście *

używając pathlib from (Python 3.4)

Jeśli chcesz używać rozumienia list

flist = 

Pobieraj wszystkie i tylko pliki z systemem operacyjnym.,walk

Get only files with next and walk in a directory

import osx = next(os.walk('F://python'))print(x)################################### output: 

Get only directory with next and walk in a directory

import osnext(os.walk('F://python')) # for the current dir use ('.')# output: 

**Get all the subdir names with walk

os.scandir () z Pythona 3.5 na

Ex. 1: Ile plików jest w podkatalogach?

w tym przykładzie szukamy liczby plików, które znajdują się we wszystkich katalogach i jego podkatalogach.

wew.2: Jak skopiować wszystkie pliki z katalogu do innego?,

skrypt do porządkowania w komputerze odnalezienia wszystkich plików danego typu (domyślnie: pptx) i skopiowania ich do nowego folderu.

wew.3: Jak uzyskać wszystkie pliki w pliku txt

w przypadku, gdy chcesz utworzyć plik txt ze wszystkimi nazwami plików:

przykład: utwórz plik txt ze wszystkimi nazwami plików na dysku twardym

cały plik C:\ w jednym pliku tekstowym

jest to krótsza wersja poprzedniego kodu. Zmień folder, w którym chcesz rozpocząć wyszukiwanie plików, jeśli chcesz zacząć od innej pozycji., Ten kod generuje 50 mb na pliku tekstowym na moim komputerze z czymś mniej niż 500.000 linii z plikami z pełną ścieżką.

import oswith open("file.txt", "w", encoding="utf-8") as filewrite: for r, d, f in os.walk("C:\\"): for file in f: filewrite.write(f"{r + file}\n")

Szukam typu pliku we wszystkich dyskach twardych z systemem operacyjnym.spacer

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *