Hướng dẫn how do i generate a random file from a directory in python? - làm cách nào để tạo một tệp ngẫu nhiên từ một thư mục trong python?
Cách tốt nhất để chọn một tệp ngẫu nhiên từ một thư mục trong Python là gì? Chỉnh sửa: Đây là những gì tôi đang làm:
Điều này đặc biệt xấu, hay có một cách đặc biệt tốt hơn? Đã hỏi ngày 31 tháng 3 năm 2009 lúc 14:58Mar 31, 2009 at 14:58
JasonsmithjasonsmithJasonSmith 71.5K22 Huy hiệu vàng121 Huy hiệu bạc147 Huy hiệu đồng22 gold badges121 silver badges147 bronze badges 0
Về câu hỏi đã chỉnh sửa của bạn: Đầu tiên, tôi cho rằng bạn biết những rủi ro của việc sử dụng 2, cũng như thực tế là nó không được chấp nhận kể từ 2.6 và bị xóa trong 3.0.Thứ hai, tôi không thấy bất kỳ điều kiện chủng tộc nào tồn tại ở đây. Đối tượng 2 của bạn về cơ bản là bất biến (sau khi danh sách thư mục được lưu trữ, nó không bao giờ được đọc nữa), vì vậy không có tác hại nào trong các lần đọc đồng thời từ nó.
Ngoài ra, tôi không hiểu tại sao bạn thấy bất kỳ vấn đề nào với giải pháp này. Nó là tốt. Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:02Mar 31, 2009 at 15:02
Yuval Adamyuval AdamYuval Adam 158K91 Huy hiệu vàng300 Huy hiệu bạc389 Huy hiệu Đồng91 gold badges300 silver badges389 bronze badges 2 Nếu bạn muốn bao gồm các thư mục, câu trả lời của Yuval A. Nếu không thì:
Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:10Mar 31, 2009 at 15:10
Mavnnmavnnmavnn 8.7834 Huy hiệu vàng31 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges31 silver badges50 bronze badges 1 Giải pháp đơn giản nhất là sử dụng các phương thức Os.ListDir & Random.Choiceos.listdir & random.choice methods
Hãy xem từng bước một bước:--
Xem xét một ứng dụng thời gian thực Dưới đây là mã python mẫu sẽ chuyển các tệp ngẫu nhiên từ thư mục này sang thư mục khác
Bạn có thể kiểm tra toàn bộ dự án trên trình chọn tệp ngẫu nhiên GitHubRandom File Picker Để bổ sung tham khảo về phương thức Os.ListDir & Random.Choice, bạn có thể tham khảo hướng dẫn tìm hiểu Pythonos.listdir & random.choice method you can refer to tutorialspoint learn python Os.ListDir:- Phương thức python listDir () Random.Choice:- Phương thức Python Lựa chọn () Đã trả lời ngày 1 tháng 10 năm 2018 lúc 7:22Oct 1, 2018 at 7:22
Vấn đề với hầu hết các giải pháp được đưa ra là bạn tải tất cả đầu vào của mình vào bộ nhớ, điều này có thể trở thành vấn đề cho các đầu vào/phân cấp lớn. Đây là một giải pháp được chuyển thể từ cuốn sách nấu ăn Perl của Tom Christiansen và Nat Torkington. Để có được một tệp ngẫu nhiên ở bất cứ đâu bên dưới một thư mục:
Tổng quát hóa một chút làm cho một kịch bản tiện dụng:
Đã trả lời ngày 28 tháng 1 năm 2017 lúc 16:10Jan 28, 2017 at 16:10
Keithpjolleykeithpjolleykeithpjolley 1.9861 Huy hiệu vàng16 Huy hiệu bạc19 Huy hiệu đồng1 gold badge16 silver badges19 bronze badges 0 Giải pháp bất khả tri về ngôn ngữ: 1) Nhận tổng số không. của các tập tin trong thư mục được chỉ định. 2) Chọn một số ngẫu nhiên từ 0 đến [Tổng số không. của các tập tin - 1]. 3) Nhận danh sách các tên tệp là một bộ sưu tập được lập chỉ mục phù hợp hoặc như vậy. 4) Chọn phần tử thứ n, trong đó n là số ngẫu nhiên. Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:04Mar 31, 2009 at 15:04
karim79karim79karim79 337K67 Huy hiệu vàng411 Huy hiệu bạc405 Huy hiệu Đồng67 gold badges411 silver badges405 bronze badges 1 Độc lập với ngôn ngữ được sử dụng, bạn có thể đọc tất cả các tham chiếu đến các tệp trong một thư mục vào một cơ sở dữ liệu như một mảng (một cái gì đó như 'listfiles'), có được độ dài của mảng. Tính một số ngẫu nhiên trong phạm vi '0' đến 'ArrayLpm-1' và truy cập tệp ở chỉ mục nhất định. Điều này nên làm việc, không chỉ trong Python. Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:01Mar 31, 2009 at 15:01
Mork0075Mork0075Mork0075 5,8754 Huy hiệu vàng23 Huy hiệu bạc24 Huy hiệu đồng4 gold badges23 silver badges24 bronze badges Nếu bạn không biết trước đây những tệp nào ở đó, bạn sẽ cần phải có một danh sách, sau đó chỉ cần chọn một chỉ mục ngẫu nhiên trong danh sách. Đây là một nỗ lực:
Chỉnh sửa: Câu hỏi hiện đề cập đến nỗi sợ "tình trạng chủng tộc", mà tôi chỉ có thể giả định là vấn đề điển hình của các tệp được thêm/xóa trong khi bạn đang trong quá trình cố gắng chọn một tệp ngẫu nhiên.: The question now mentions a fear of a "race condition", which I can only assume is the typical problem of files being added/removed while you are in the process of trying to pick a random file. Tôi không tin rằng có một cách xung quanh điều đó, ngoài việc ghi nhớ rằng bất kỳ hoạt động I/O nào là "không an toàn", tức là nó có thể thất bại. Vì vậy, thuật toán để mở một tệp được chọn ngẫu nhiên trong một thư mục nhất định nên:
Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:02Mar 31, 2009 at 15:02
Yuval Adamyuval Adamunwind 158K91 Huy hiệu vàng300 Huy hiệu bạc389 Huy hiệu Đồng64 gold badges464 silver badges595 bronze badges 0 Nếu bạn muốn bao gồm các thư mục, câu trả lời của Yuval A. Nếu không thì:
Đã trả lời ngày 31 tháng 3 năm 2009 lúc 15:10Dec 22, 2020 at 12:56
1 Mavnnmavnnlarge number of files from a larger number of files, and maybe copy or move them in another dir, the proposed approach is of course too slow. 8.7834 Huy hiệu vàng31 Huy hiệu bạc 50 Huy hiệu Đồng
Giải pháp đơn giản nhất là sử dụng các phương thức Os.ListDir & Random.Choice 0Đã trả lời ngày 11 tháng 7 lúc 10:21Jul 11 at 10:21
Biobiobio 4591 Huy hiệu vàng4 Huy hiệu bạc16 Huy hiệu đồng1 gold badge4 silver badges16 bronze badges Mã này không lặp lại tên tệp: 1Random_200_Files = Random_Files (200, list_of_files) Đã trả lời ngày 27 tháng 7 lúc 6:17Jul 27 at 6:17
Aravind Raravind rAravind R 3553 Huy hiệu bạc11 Huy hiệu đồng3 silver badges11 bronze badges |