Tôi thực sự bối rối về điều này.glob python chỉ trả lại kết quả đầu tiên
Tôi có một wrapper python đơn giản mà trông giống như sau:
import glob
for found in glob.glob(filename):
if not os.path.isdir(found):
my_module.do_stuff(found)
nơi filename
đã được đọc từ sys.argv
.
Khi tôi thử glob
trong trình bao tương tác hoặc tập lệnh chào thế giới, tôi nhận danh sách đầy đủ (trong trường hợp này là 5) tệp. Tuy nhiên, khi tôi sử dụng nó trong bối cảnh này, tôi chỉ nhận được cái đầu tiên (theo bảng chữ cái).
Tôi đã kiểm tra bằng cách bắt kết quả của glob.glob
trong một mảng và chắc chắn đủ, nó chỉ có một số len()
của 1, ngay cả khi tên tệp chỉ là '*'
.
Tôi có thể làm gì để phá vỡ glob
?!
tập tin đầy đủ mã, chỉ trong trường hợp bạn có thể nhận ra Gotcha tôi:
#! /usr/bin/python
import pynet.quadrons as q
import os, glob
def print_usage():
print """
(blah blah big long string.)
"""
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print_usage()
exit()
filename = ''
try:
filename = sys.argv[1]
except:
print "error parsing arguments."
print_usage()
exit()
for found in glob.glob(filename):
if not os.path.isdir(found):
q.load_and_analyse_file(found)
Bạn có thể gửi một mẫu 'sys.argv'? – Blender
Vui lòng đăng mẫu: Hiển thị nội dung thư mục và mẫu bạn sử dụng không hoạt động – gecco