glob
rất hữu ích nếu bạn đang làm điều này trong vòng trăn, tuy nhiên, shell của bạn có thể không được đi qua trong *
(Tôi không quen với vỏ cửa sổ).
Ví dụ, khi tôi làm như sau:
import sys
print sys.argv
Mở vỏ của tôi, tôi gõ:
$ python test.py *.jpg
tôi có được điều này:
['test.py', 'test.jpg', 'wasp.jpg']
ý rằng argv
không chứa "*.jpg"
Bài học quan trọng ở đây là hầu hết các vỏ sẽ mở rộng dấu sao ở vỏ, trước khi nó được chuyển đến ứng dụng của bạn.
Trong trường hợp này, để lấy danh sách tệp, tôi chỉ cần thực hiện sys.argv[1:]
. Ngoài ra, bạn có thể thoát khỏi *
, để con trăn thấy chữ số *
. Sau đó, bạn có thể sử dụng mô-đun glob
.
$ getFileNames.py "*.jpg"
hoặc
$ getFileNames.py \*.jpg
Nguồn
2010-07-27 23:57:46
Như Donald Miner chỉ ra trong câu trả lời khác, điều này là không hoàn toàn đúng phụ thuộc vào vỏ được sử dụng. –