Glob trong python

Dưới đây là biến thể tổng hợp danh sách một dòng của câu trả lời của Pat [cũng bao gồm cả bạn muốn Glob trong một thư mục dự án cụ thể]:

Nội dung chính Show

import os, glob
exts = ['*.txt', '*.mdown', '*.markdown']
files = [f for ext in exts for f in glob.glob[os.path.join[project_dir, ext]]]

Bạn lặp qua các tiện ích mở rộng [

sales.txt
profit.txt
samples.txt
5], và sau đó cho mỗi tiện ích mở rộng bạn lấy mỗi tệp phù hợp với mẫu GLOB [
sales.txt
profit.txt
samples.txt
6].

Giải pháp này là ngắn và không có bất kỳ vòng lặp không cần thiết nào, sự hiểu biết danh sách lồng nhau hoặc các chức năng để làm lộn xộn mã. Chỉ là Zen tinh khiết, biểu cảm, Pythonic.

Giải pháp này cho phép bạn có một danh sách tùy chỉnh

sales.txt
profit.txt
samples.txt
7 có thể được thay đổi mà không phải cập nhật mã của bạn. [Đây luôn là một thực hành tốt!]

Sự hiểu biết danh sách là giống nhau được sử dụng trong giải pháp của Laurent [mà tôi đã bỏ phiếu]. Nhưng tôi sẽ lập luận rằng thường không cần thiết phải đưa ra một dòng duy nhất cho một chức năng riêng biệt, đó là lý do tại sao tôi cung cấp đây như một giải pháp thay thế.

Bonus:

Nếu bạn cần tìm kiếm không chỉ một thư mục duy nhất, mà còn tất cả các thư mục phụ, bạn có thể vượt qua

sales.txt
profit.txt
samples.txt
8 và sử dụng biểu tượng GLOB đa hướng
sales.txt
profit.txt
samples.txt
9 1:
files = [f for ext in exts 
         for f in glob.glob[os.path.join[project_dir, '**', ext], recursive=True]]

Điều này sẽ gọi

sales.txt
profit.txt
samples.txt
0 và như vậy cho mỗi tiện ích mở rộng.

1 Về mặt kỹ thuật, biểu tượng Glob

sales.txt
profit.txt
samples.txt
9 chỉ đơn giản là khớp với một hoặc nhiều ký tự bao gồm cả Slash
sales.txt
profit.txt
samples.txt
2 [không giống như biểu tượng GLOB
sales.txt
profit.txt
samples.txt
3 số ít]. Trong thực tế, bạn chỉ cần nhớ rằng miễn là bạn bao quanh
sales.txt
profit.txt
samples.txt
9 với các dấu gạch chéo [phân tách đường dẫn], nó phù hợp với các thư mục bằng không hoặc nhiều hơn.

Python v3.5+

Phương pháp nhanh bằng cách sử dụng OS.Scandir trong một hàm đệ quy. Tìm kiếm tất cả các tệp với một tiện ích mở rộng được chỉ định trong thư mục và trình phụ phụ. Nó là nhanh, ngay cả khi tìm thấy 10.000 tệp.

Nội dung chính ShowShow

  • Python v3.5+
  • Phương pháp nhanh bằng cách sử dụng OS.Scandir trong một hàm đệ quy. Tìm kiếm tất cả các tệp với một tiện ích mở rộng được chỉ định trong thư mục và trình phụ phụ. Nó là nhanh, ngay cả khi tìm thấy 10.000 tệp.
  • Nội dung chính Show
  • Ví dụ: Liệt kê các tệp trong thư mục với TXT mở rộng
  • Mô -đun hệ điều hành để liệt kê các tệp trong thư mục với phần mở rộng
  • Liệt kê các tệp trong thư mục và thư mục con với TXT mở rộng
  • Bài tập và câu đố Python
  • Có nghĩa là * có nghĩa là gì trong Python trong GLOB?
  • Có bao gồm toàn cầu trong Python?

Mô -đun GLOB là một phần hữu ích của thư viện tiêu chuẩn Python.Tóm lại cho toàn cầu, Glob được sử dụng để trả về tất cả các đường dẫn tệp phù hợp với một mẫu cụ thể.

Bây giờ tôi muốn di chuyển các tập tin. Các tệp có phạm vi 0-7999 nên được sao chép vào thư mục đầu tiên. Tệp 8000-9999 nên được sao chép vào thư mục thứ hai và các tệp có phạm vi 10000-12499 nên được sao chép vào thư mục thứ ba.

Đầu tiên, tôi nghĩ rằng tôi có thể dễ dàng sử dụng [0-7999] .jpg cho thư mục đầu tiên, [8000-9999] .jpg cho lần thứ hai và [10000-12499] .jpg cho lần thứ ba. Tuy nhiên, điều này không hoạt động. Tôi đã tìm ra mã sau, dựa trên các ký tự đại diện mà tôi biết là cái nào? và *: Mã sau đây hoạt động và thực hiện công việc [xin lưu ý rằng tôi đã nhận xét về SHOTIL.COPY, thay vào đó sử dụng in để kiểm tra kết quả]:

import glob
import shutil
dest_dir = "/tmp/folder1/"
for file in glob.glob['/tmp/source/?.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

dest_dir = "/tmp/folder1/"
for file in glob.glob['/tmp/source/??.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

dest_dir = "/tmp/folder1/"
for file in glob.glob['/tmp/source/???.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

dest_dir = "/tmp/folder1/"
for file in glob.glob['/tmp/source/[1-7]???.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

dest_dir = "/tmp/folder2/"
for file in glob.glob['/tmp/source/[8-9]???.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

dest_dir = "/tmp/folder3/"
for file in glob.glob['/tmp/source/?????.jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

Tuy nhiên, tôi muốn có một giải pháp thanh lịch cho việc này. Tôi đã googled biểu thức chính quy với phạm vi số nguyên và đã thử như sau:

dest_dir = "/tmp/folder3/"
for file in glob.glob['/tmp/source/\b[[0-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000].jpg']:
    #shutil.copy[file, dest_dir]
    print[file]

Điều này không hoạt động. Vì vậy, một triển khai chính xác trông như thế nào? Tôi cần một giải pháp cho cả hai, Sould.Copy và Shutil.move, nhưng tôi nghĩ nó giống nhau cho cả hai. Tôi cần phải có một giải pháp biểu hiện thường xuyên ở đây cho việc này, vì tôi hy vọng đây sẽ chỉ là một dòng mã để giải quyết vấn đề này. Nếu một người chỉ biết biểu thức chính xác cho điều này. Tôi không muốn lặp lại thông qua nó với việc trích xuất các số/giá trị, như trong giải pháp này [hoặc bất kỳ giải pháp nào khác tránh tìm biểu thức chính xác chính xác]. Vì vậy, vấn đề của tôi thực sự là về biểu hiện chính quy.I need to have a regular expression solution here for this, as I expect this would be just one line of code to solve this issue. If one only knew the correct expression for this. I do not want to iterate through it with extracting the numbers/values itself, like in this solution [or any other solution avoiding finding the correct regular expression]. So my problem really is about the regular expression.

Cách gọi một chức năng bên trong một lớp học trong Python

Tôi có mã này tính toán khoảng cách giữa hai tọa độ. Hai hàm đều nằm trong cùng một lớp. Tuy nhiên, làm thế nào để tôi gọi hàm disttopoint trong hàm isNear? Lớp ...

Làm thế nào để tôi có được ngày chỉ trong Python?

Tôi đang tạo một trang web và tôi muốn so sánh các ngày nhưng sau đó khi tôi làm điều đó, nó sẽ cho tôi thêm 0:00:00 mà tôi không muốn đây là mã của tôi: % nếu [DateTime.DateTime.strptime [hàng [do_date] , ...

Hướng dẫn python viết lệnh

Hướng dẫn Thời gian tin cậy Pythona Hướng dẫn tiện dụng về cách tính khoảng tin cậy trong Pythonphoto bằng phương tiện Edge2EDge trên unplash khi chúng ta đo lường một cái gì đó, chúng ta luôn phải tính toán ...

Chức năng hướng dẫn xử lý python

Các lớp cung cấp một phương tiện của dữ liệu bó và chức năng cùng nhau. Tạo một lớp mới tạo ra một loại đối tượng mới, cho phép các phiên bản mới của loại đó được thực hiện. Mỗi trường hợp lớp có thể có ...

Hướng dẫn dùng remoce python

Hasm set Remove [] trong python xùaa phần tử /c chỉ định từ một set.nội Dung chính2. Hasm đặt ra [] trong python2. Ví dụ ha set remove [] trong python1. Hasm set remove [] ...

Đọc dòng cụ thể từ tệp python

Xem Thảo luận về các bài viết của articleAdeadDiscussView Thảo luận về các bài viết bài viết được cấu tạo từ nội dung văn bản đơn giản. Tệp văn bản còn được gọi là tệp phẳng hoặc tệp đơn giản. ...

Hướng dẫn int to nhị phân python

Đã hỏi 13 năm, 5 tháng đã xem 1,1 triệu lần có bất kỳ phương pháp python đóng hộp nào để chuyển đổi số nguyên [hoặc dài] thành một chuỗi nhị phân trong Python không? Có vô số chức năng của Dec2bin [] trên ...

Máy tính còn lại của Hướng Dẫn Python

Viết danh sách vào tệp Python 3MyFile.Close - Loại bỏ điều đó nơi bạn sử dụng. với việc tự động đóng myfile và bạn phải gọi gần như đóng [] để nó làm bất cứ điều gì khi bạn không ...

Bài tập thể dục

Chúng tôi sử dụng cookie để đảm bảo bạn có trải nghiệm duyệt tốt nhất trên trang web của chúng tôi. Bằng cách sử dụng trang web của chúng tôi, bạn thừa nhận rằng bạn đã đọc và hiểu chính sách và chính sách bảo mật cookie của chúng tôi khởi động ...

Hướng dẫn regex javascript

I. GIớI Thiệubiểu thức Chính QUY [Biểu thức thông thường] Trong ...

Làm thế nào để bạn vẽ các bảng chéo trong Python?

Trong bài viết này, chúng tôi sẽ thảo luận về cách tạo ra một âm mưu thanh bằng cách sử dụng Pandas Crosstab trong Python. Đầu tiên cho chúng tôi biết thêm về crosstab, đó là một sự phân loại chéo đơn giản của hai hoặc nhiều biến.

Hướng dẫn liệt kê trong python

Ví d

Chuyển đổi JSON sang chuỗi Python 3

Xem các bài báo thảo luận về bài viết articleaddiscussview Các bài viết của các bài viết trong các nền tảng được truyền qua các nền tảng bằng cách sử dụng các cuộc gọi API. Dữ liệu chủ yếu được truy xuất ở định dạng JSON. Chúng ta có thể ...

Hướng dẫn python ghi đè bằng

Chỉ có một chút bởi điều này. Vì vậy, nếu bạn muốn ghi đè người vận hành bình đẳng trong Python, điều đơn giản nhất cần làm là ghi đè phương thức __eq__. Ví dụ: lớp myfoo [đối tượng]: def __init __ [tự, ...

Hướng dẫn dùng dict add trong php

Th8 17, 2022 nội phân Chínhgiới thiệubạn cần chuẩn bị gì?

Giá trị truy cập trong Python từ điển lồng nhau

Trong Python, một từ điển là một bộ sưu tập các mặt hàng không có thứ tự. Ví dụ: Từ điển = {key: value, key_2: value_2} Ở đây, từ điển có một khóa: cặp giá trị được đặt trong dấu ngoặc xoăn {} .to ...

Làm thế nào để bạn dịch văn bản trong Python?

· 6 phút Đọc · Cập nhật tháng 7 năm 2022 · Giao diện lập trình ứng dụng · Xử lý ngôn ngữ tự nhiên: Bài đăng này có thể chứa các liên kết liên kết, có nghĩa là khi bạn nhấp vào các liên kết ...

JavaScript Chọn từ ngẫu nhiên từ mảng

Nó là một liner đơn giản: const RandomEuity = mảng [math.floor [math.random [] * mảng.length]]; Ví dụ: Const tháng = [tháng 1, tháng 2, tháng 3, tháng 4, tháng 5, tháng 6, tháng 7]; hăng sô ...

Làm thế nào để bạn in một dòng phá vỡ trong Python?

Chào mừng! Nhân vật dòng mới trong Python được sử dụng để đánh dấu phần cuối của một dòng và bắt đầu một dòng mới. Biết cách sử dụng nó là điều cần thiết nếu bạn muốn in đầu ra vào bảng điều khiển và làm việc ...

Hướng dẫn python kiểm tra getMembers đệ quy

Dir [] cho phép bạn tùy chỉnh những thuộc tính nào báo cáo đối tượng của mình, bằng cách xác định __dir __ []. Từ hướng dẫn, nếu __dir __ [] không được xác định: nếu đối tượng là đối tượng mô -đun, danh sách chứa tên của ...

Sắp xếp dict python bằng chìa khóa

Có một cách dễ dàng để sắp xếp một từ điển. [Trong đó C, là tên của từ điển của bạn.] Chương trình này cho ...

Địa chỉ phân chia hướng dẫn trong javascript

Tôi đang cố gắng chia tên đường phố, số nhà và số hộp từ một chuỗi. Giả sử chuỗi là Somestreet 59a cho trường hợp này tôi đã có một giải pháp với Regex. Tôi đang sử dụng cái này ...

Mục đích của byte [] trong Python là gì?

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về phương thức python byte [] với sự trợ giúp của các ví dụ. Phương thức byte [] trả về một đối tượng byte bất biến được khởi tạo với kích thước và dữ liệu đã cho.examplemessage ...

Hướng dẫn dùng np.where python python

Mô-/n numpy cung cấp một ha numpy.where [] Để Chọn Các phần tử dựa trán một Điều kiện. Nó tr

Python dịch tiếng Pháp sang tiếng Anh

Sử dụng các dịch giả nổi tiếng khác nhau [ví dụ: người dịch Google và hơn thế nữa] với python.Intrialion trong hướng dẫn này, chúng tôi sẽ khám phá các khả năng khác nhau để dịch một văn bản hoặc từ sử dụng python. Từ ... của tôi ...

Hướng dẫn getter-setter python

Dẫn nh ậpở các bào trước,

Phân số python hướng dẫn

Mã nguồn: Lib/Phân số. Mô -đun phân số cung cấp hỗ trợ cho số học số hợp lý.

Chuyển đổi thời gian sang múi giờ Python

Tôi muốn chuyển đổi thời gian hiện tại thành +0900 trong python.

Hướng dẫn dùng tỷ lệ python

Trong trang nào: nội phân chính2. Giới Thiệunhắc lại Hai Mô HÀM MấT Mát Và Phương Phổi Tối ...

Hướng dẫn dùng tìm hypotenuse python

Cập nhật cuối cùng vào ngày 19 tháng 8 năm 2022 21:51:49 [UTC/GMT +8 giờ] Python Basic: Bài tập-60 với giải pháp Viết chương trình Python để tính toán hypotenuse của một tam giác góc vuông bên phải.

Hướng dẫn hợp nhất mảng python

Tham gia numpy Arraysjoining có nghĩa là đặt nội dung của hai hoặc nhiều mảng trong một mảng.

Hướng dẫn python

Nội phân Chính2- Python String 2- Truy Cập Các Giá trị Trong String 3- String Là Bất Biến [Immuable] 4- Các

Đọc tệp văn bản Python Pandas

Trong bài viết này, chúng tôi sẽ thảo luận về cách đọc các tệp văn bản với gấu trúc trong Python. Trong Python, mô -đun PANDAS cho phép chúng tôi tải DataFrames từ các tệp bên ngoài và làm việc trên chúng. Bộ dữ liệu có thể ở trong ...

Hướng d all tất cả các thư mục python

Liệt kê trong thư mục hiện tạiWith listDIR trong mô -đun HĐH Bạn nhận được các tệp và các thư mục trong hệ điều hành dirimport hiện tại ARR = os.ListDir [] đang tìm kiếm trong thư mụcarr = os.listdir [c: files] với glob ...

Làm thế nào để bạn xóa văn bản trong Python?

Đôi khi chúng tôi muốn loại bỏ tất cả các lần xuất hiện của một ký tự khỏi một chuỗi. Có hai cách phổ biến để đạt được điều này.Python Xóa ký tự khỏi chuỗi chuỗi thay thế [] Chuỗi chức năng ...

Chủ Đề