s লি।
মনে করুন কোনও ডিরেক্টরি ইউনিক্স টাইমস্ট্যাম্প সহ ছবি পূর্ণ, আমি অনেক জিবি বা আরও অনেক কিছুতে পরিমাপকৃত অর্থ। শেল-কমান্ডগুলির মতো ls
ওভারফ্লো স্টাইলের সতর্কতাগুলি পাবেন কারণ তারা মিলিয়ন (বা আরও বেশি) ছবির সাথে কাজ করার জন্য ডিজাইন করা হয়নি। আমি কীভাবে এত বড় পরিমাণে ফাইল পরিচালনা করতে পারি? যদি, উদাহরণস্বরূপ, আমি ছবিটি মাঝখানে খুঁজে পেতে চাই (নাম এবং সৃষ্টির টাইমস্ট্যাম্প অনুসারে), এমন কোনও ফাইল-সিস্টেম রয়েছে যা বিল্ট-ইন অনুসন্ধান বৈশিষ্ট্য সরবরাহ করে? আপনি কোন আদেশ ব্যবহার করবেন? আমি আরামদায়ক চেষ্টা করেছি ls
এবংfind
প্রয়োজনীয় পতাকা সহ তবে সেগুলি হয় খুব ধীরে ধীরে বা উত্পন্ন সতর্কবার্তা ছিল তাই আমি ভাবছি যে ছবিগুলির প্রাক-সূচিপত্রের জন্য আমার আরও ভাল ফাইল-সিস্টেম বা ডিবি বা এর মতো কিছু দরকার। আমার মূলত একটি অ্যারে দরকার যেখানে ফটোগুলির আইনেরগুলি কালানুক্রমিক ক্রমে স্থাপন করা উচিত। কিভাবে যে কি? পরে, ইউনিক্স-টাইমস্ট্যাম্পগুলির সাথে মেটাডেটা যুক্ত করা যেতে পারে।
[হালনাগাদ]
বর্তমান উত্তরের একটি গুরুতর ত্রুটি রয়েছে, লোকেরা কেবল অভিজ্ঞতাগত পরীক্ষা ছাড়াই উত্তরগুলি পোস্ট করে। যদি তারা তাদের পরামর্শগুলি পরীক্ষা করে থাকে তবে তারা সম্ভবত ব্যর্থ হত। সুতরাং, আমি আপনাকে একটি কমান্ড-লাইন সরঞ্জাম তৈরি করেছি যার সাহায্যে আপনি বিপুল পরিমাণ ফাইল তৈরি করতে স্যান্ডবক্স তৈরি করতে পারেন এবং 1e7 পরিমাণ ফাইলের মতো আপনার পরামর্শগুলি পরীক্ষা করতে পারেন। ফাইলগুলি উত্পন্ন করতে দীর্ঘ সময় নিতে পারে তাই ধৈর্য ধরুন। কেউ যদি এটি করার দ্রুত উপায় জানেন তবে দয়া করে কোডটি সম্পাদনা করুন। python code.py --help
সহায়তা পেতে টাইপ করুন । আনন্দ কর!
প্রচুর dirred ফাইল তৈরি করতে ব্যবহারের উদাহরণ
$ ls ./data2
ls: ./data2: No such file or directory
$ python testFill.py -n 3 -d 7
$ tree data2/
data2/
|-- 0
| |-- 1302407302636973
| |-- 1302407302638022
| `-- 1302407302638829
|-- 1
| |-- 1302407302639604
| |-- 1302407302641652
| `-- 1302407302642399
|-- 2
| |-- 1302407302643158
| |-- 1302407302645223
| `-- 1302407302646026
|-- 3
| |-- 1302407302646837
| |-- 1302407302649110
| `-- 1302407302649944
|-- 4
| |-- 1302407302650771
| |-- 1302407302652921
| `-- 1302407302653685
|-- 5
| |-- 1302407302654423
| |-- 1302407302656352
| `-- 1302407302656992
`-- 6
|-- 1302407302657652
|-- 1302407302659543
`-- 1302407302660156
7 directories, 21 files
কোড টেস্টফিল.পি
# Author: hhh
# License: ISC license
import os, math, time, optparse, sys
def createHugeAmountOfFiles(fileAmount, dirAmount):
counter = 0
DENSITY = 1e7
dir = "./data/"
do = dir+str(counter)+"/"
while (os.path.exists(do)):
counter = counter+1
do = dir+str(counter)+"/"
os.mkdir(do)
for d in range(int(dirAmount)):
for f in range(int(fileAmount)):
timeIt = int(time.time()*1e6)
if (not os.path.exists(do)):
os.mkdir(do)
if (timeIt % DENSITY == 0):
counter = counter+1
do = dir+str(counter)+"/"
if (not os.path.exists(do)):
os.mkdir(do)
do = dir+str(counter)+"/"
if(not os.path.exists(do)):
os.mkdir(do)
f = open(do+str(timeIt), 'w')
f.write("Automatically created file to test Huge amount of files.")
f.close()
counter = counter +1
def ls(dir):
for root, dirs, files in os.walk("./data/"+dir):
print(files)
def rm(dir):
for root, dirs, files in os.walk("./data/"+dir):
for f in files:
os.remove("./data/"+dir+"/"+f)
def parseCli():
parser = optparse.OptionParser()
parser.add_option("-f", "--file", dest="filename",
help="Location to remove files only in ./Data.", metavar="FILE")
parser.add_option("-n", "--number", dest="number",
help="Number of files to generate", metavar="NUMBER")
parser.add_option("-r", "--remove", dest="remove",
help="Data -dir content to remove", metavar="NUMBER")
parser.add_option("-d", "--dir", dest="dir",
help="Amount of dirs to generate", metavar="NUMBER")
parser.add_option("-q", "--quiet",
action="store_false", dest="verbose", default=True,
help="don't print status messages to stdout")
return parser.parse_args()
def main():
(options, args) = parseCli()
if (options.filename):
ls(options.filename)
if (options.number and options.dir):
createHugeAmountOfFiles(options.number, options.dir)
if (options.remove):
rm(options.remove)
main()
a/b/abcdef.jpg