পাইথন একাধিক ফাইল টাইপ গ্লোব


142

পাই। টেক্সট, .মডাউন এবং .মার্কডাউন একাধিক ফাইল ধরণের তালিকা পেতে পাইথনে গ্লোব.glob ব্যবহার করার আরও ভাল উপায় কি? এই মুহূর্তে আমার কাছে এরকম কিছু রয়েছে:

projectFiles1 = glob.glob( os.path.join(projectDir, '*.txt') )
projectFiles2 = glob.glob( os.path.join(projectDir, '*.mdown') )
projectFiles3 = glob.glob( os.path.join(projectDir, '*.markdown') )

1
খুব সম্পর্কিত: স্ট্যাকওভারফ্লো.
com

উত্তর:


156

হতে পারে আরও ভাল উপায় আছে তবে কীভাবে:

import glob
types = ('*.pdf', '*.cpp') # the tuple of file types
files_grabbed = []
for files in types:
    files_grabbed.extend(glob.glob(files))

# files_grabbed is the list of pdf and cpp files

সম্ভবত অন্য কোনও উপায় রয়েছে, সুতরাং অপেক্ষা করুন যদি অন্য কেউ আরও ভাল উত্তর নিয়ে আসে।


19
files_grabbed = [glob.glob(e) for e in ['*.pdf', '*.cpp']]
নভিটল

10
নভিটোলের সমাধানটি সংক্ষিপ্ত, তবে এটি নেস্টেড তালিকা তৈরি করে শেষ করে।
রোব্রোক

9
আপনি সর্বদা এটি করতে পারতেন;)[f for f_ in [glob.glob(e) for e in ('*.jpg', '*.mp4')] for f in f_]
অ্যালেক্সজি

1
ফাইল_গ্র্যাবড = [ glob.glob (e) ই এর জন্য [' .pdf', '* .cpp']]
ফ্লোরিসা

3
ফাইলগুলির তালিকার মাধ্যমে এটি দু'বার লুপ করে। প্রথম পুনরাবৃত্তিতে এটি * .pdf এবং দ্বিতীয়টি এটি * .cpp পরীক্ষা করে। এটি একটি পুনরাবৃত্তিতে সম্পন্ন করার কোনও উপায় আছে? সম্মিলিত অবস্থা প্রতিবার পরীক্ষা?
রিধুદર્શન

47
from glob import glob

files = glob('*.gif')
files.extend(glob('*.png'))
files.extend(glob('*.jpg'))

print(files)

আপনার যদি কোনও পাথ নির্দিষ্ট করতে হয় তবে ম্যাচের নিদর্শনগুলি লুপ করুন এবং সরলতার জন্য লুপটির অভ্যন্তরে যোগ দিন:

from os.path import join
from glob import glob

files = []
for ext in ('*.gif', '*.png', '*.jpg'):
   files.extend(glob(join("path/to/dir", ext)))

print(files)

44

glob একটি তালিকা ফেরত দেয়: কেন এটি কেবল একাধিকবার চালানো এবং ফলাফলগুলি একত্রিত করা উচিত নয়?

from glob import glob
ProjectFiles = glob('*.txt') + glob('*.mdown') + glob('*markdown')

2
এটি সম্ভবত দেওয়া সবচেয়ে পঠনযোগ্য সমাধান। আমি ক্ষেত্রে পরিবর্তন হবে ProjectFilesথেকে projectFiles, কিন্তু মহান সমাধান।
হান্স গোল্ডম্যান

40

ফলাফল চেইন:

import itertools as it, glob

def multiple_file_types(*patterns):
    return it.chain.from_iterable(glob.iglob(pattern) for pattern in patterns)

তারপর:

for filename in multiple_file_types("*.txt", "*.sql", "*.log"):
    # do stuff

13
glob.glob -> glob.iglob যাতে পুনরাবৃত্তকারী চেইন পুরোপুরি অলসভাবে মূল্যায়ন করা যায়
রড্রিগোব

1
আমি একই সমাধান পেয়েছি কিন্তু সম্পর্কে জানতাম না chain.from_iterable। তাই এই অনুরূপ, কিন্তু কম পাঠযোগ্য: it.chain(*(glob.iglob(pattern) for pattern in patterns))
ফ্লোরিসা

17

এতগুলি উত্তর যা এক্সটেনশনের সংখ্যা হিসাবে বহুবার গ্লোব্বিংয়ের পরামর্শ দেয়, আমি তার পরিবর্তে কেবল একবার গ্লোব্বিং পছন্দ করি:

from pathlib import Path

files = {p.resolve() for p in Path(path).glob("**/*") if p.suffix in [".c", ".cc", ".cpp", ".hxx", ".h"]}

15

গ্লোব দিয়ে এটি সম্ভব নয়। আপনি কেবল ব্যবহার করতে পারেন:
* সব কিছুর সাথে মেলে
? কোনও একক অক্ষরের সাথে মেলে
[seq] seq- এর যে কোনও বর্ণের সাথে মেলে
[! seq] কোনও বর্ণের সাথে মেলে যা সেক নয়

নিদর্শনগুলি পরীক্ষা করতে os.listdir এবং একটি regexp ব্যবহার করুন:

for x in os.listdir('.'):
  if re.match('.*\.txt|.*\.sql', x):
    print x

10
ফাইলের
নামগুলির

1
আমি এই পদ্ধতির পছন্দ করি - যদি itertoolsগ্লোবের ভাবগাম্ভীর্যতা যথেষ্ট শক্তিশালী না হয় তবে আরও শক্তিশালী রেজেক্স সিস্টেমে আপগ্রেড করুন, উদাহরণস্বরূপ এটি ব্যবহার করে হ্যাক করবেন না কারণ পরবর্তী প্যাটার্নের পরিবর্তনগুলিও হ্যাকি হতে হবে (বলুন আপনি উচ্চ এবং নিম্নের ক্ষেত্রে অনুমতি দিতে চান) । ওহ, এবং এটি লিখিতভাবে পরিষ্কার হতে পারে'.*\.(txt|sql)'
metakermit

গ্লোব.আইগ্লোব ('।') এর চেয়ে ওস.লিস্টডির (' ') পছন্দ করার কোনও কারণ আছে কি ?
মিঃ ওয়ার্সশিপ

14

উদাহরণস্বরূপ, একাধিক ফোল্ডারে *.mp3এবং এর জন্য *.flac, আপনি এটি করতে পারেন:

mask = r'music/*/*.[mf][pl][3a]*'
glob.glob(mask)

ধারণাটি আরও ফাইল এক্সটেনশনে প্রসারিত হতে পারে, তবে আপনাকে পরীক্ষা করতে হবে যে সংমিশ্রণগুলি সেই ফোল্ডারে আপনার থাকা অন্য কোনও অযাচিত ফাইল এক্সটেনশনের সাথে মেলে না। সুতরাং, এই সঙ্গে সাবধান

একক গ্লোব প্যাটার্নে এক্সটেনশনের একটি স্বেচ্ছাসেবী তালিকাটি স্বয়ংক্রিয়ভাবে সংহত করতে, আপনি নিম্নলিখিতগুলি করতে পারেন:

mask_base = r'music/*/*.'
exts = ['mp3', 'flac', 'wma']
chars = ''.join('[{}]'.format(''.join(set(c))) for c in zip(*exts))
mask = mask_base + chars + ('*' if len(set(len(e) for e in exts)) > 1 else '')
print(mask)  # music/*/*.[fmw][plm][3a]*

6

একটি ওলাইনার, কেবল এর নরকের জন্য ..

folder = "C:\\multi_pattern_glob_one_liner"
files = [item for sublist in [glob.glob(folder + ext) for ext in ["/*.txt", "/*.bat"]] for item in sublist]

আউটপুট:

['C:\\multi_pattern_glob_one_liner\\dummy_txt.txt', 'C:\\multi_pattern_glob_one_liner\\dummy_bat.bat']

4

সাহায্যের জন্য এখানে আসার পরে, আমি আমার নিজস্ব সমাধান তৈরি করেছি এবং এটি ভাগ করে নিতে চাই। এটি ব্যবহারকারীর 2363986 এর উত্তরের ভিত্তিতে, তবে আমি মনে করি এটি আরও পরিমাপযোগ্য। অর্থ, আপনার যদি 1000 এক্সটেনশন থাকে তবে কোডটি কিছুটা মার্জিত দেখবে।

from glob import glob

directoryPath  = "C:\\temp\\*." 
fileExtensions = [ "jpg", "jpeg", "png", "bmp", "gif" ]
listOfFiles    = []

for extension in fileExtensions:
    listOfFiles.extend( glob( directoryPath + extension ))

for file in listOfFiles:
    print(file)   # Or do other stuff

আমার জন্য কাজ করে না। আমি ব্যবহার করিdirectoryPath = "/Users/bla/bla/images_dir*."
নেস্ট্যাক

আপনার জন্য এটি ডিবাগ করার জন্য আমার আরও তথ্যের প্রয়োজন হবে ... আপনি কি ব্যতিক্রম পাচ্ছেন? এছাড়াও, আপনি যদি উইন্ডোজে থাকেন তবে সেই পথটি দেখে মনে হচ্ছে এটি কাজ করবে না (ড্রাইভের অক্ষর হারিয়েছে)।
হান্স গোল্ডম্যান


4

পাইথনের ডিফল্ট গ্লোব সত্যই বাশের গ্লোব অনুসরণ করে না, আপনি অন্যান্য লাইব্রেরি দিয়ে এটি করতে পারেন। আমরা wcmatch এর গ্লোবগুলিতে ব্রেসগুলি সক্ষম করতে পারি ।

>>> from wcmatch import glob
>>> glob.glob('*.{md,ini}', flags=glob.BRACE)
['LICENSE.md', 'README.md', 'tox.ini']

এমনকি যদি এটি আপনার পছন্দ হয় তবে আপনি প্রসারিত গ্লোব নিদর্শনগুলিও ব্যবহার করতে পারেন:

from wcmatch import glob
>>> glob.glob('*.@(md|ini)', flags=glob.EXTGLOB)
['LICENSE.md', 'README.md', 'tox.ini']

এটি recursiveপতাকাটি নেয় না
শামুন

@Shamoon না, এটা লাগে glob.GLOBSTARপতাকা
facelessuser

3

আমি ফর্মিক প্রকাশ করেছি যা একাধিক অন্তর্ভুক্ত প্রয়োগ করে অ্যাপাচি অ্যান্টের ফাইলসেট এবং গ্লোবগুলিতে

অনুসন্ধানটি কার্যকর করা যেতে পারে:

import formic
patterns = ["*.txt", "*.markdown", "*.mdown"]
fileset = formic.FileSet(directory=projectDir, include=patterns)
for file_name in fileset.qualified_files():
    # Do something with file_name

সম্পূর্ণ পিঁপড়া গ্লোব বাস্তবায়িত হওয়ার কারণে আপনি প্রতিটি প্যাটার্ন সহ বিভিন্ন ডিরেক্টরি অন্তর্ভুক্ত করতে পারেন, সুতরাং আপনি কেবলমাত্র একটি সাব-ডিরেক্টরিতে in টেক্সট ফাইল বেছে নিতে পারেন এবং অন্যটিতে .মার্কডাউন উদাহরণস্বরূপ:

patterns = [ "/unformatted/**/*.txt", "/formatted/**/*.mdown" ]

আশা করি এটা কাজে লাগবে.


3

_globএকাধিক ফাইল এক্সটেনশনের জন্য নিম্নলিখিত ফাংশন গ্লোব করে।

import glob
import os
def _glob(path, *exts):
    """Glob for multiple file extensions

    Parameters
    ----------
    path : str
        A file name without extension, or directory name
    exts : tuple
        File extensions to glob for

    Returns
    -------
    files : list
        list of files matching extensions in exts in path

    """
    path = os.path.join(path, "*") if os.path.isdir(path) else path + "*"
    return [f for files in [glob.glob(path + ext) for ext in exts] for f in files]

files = _glob(projectDir, ".txt", ".mdown", ".markdown")

3

এটি পাইথন ৩.৪++ pathlibসমাধান:

exts = ".pdf", ".doc", ".xls", ".csv", ".ppt"
filelist = (str(i) for i in map(pathlib.Path, os.listdir(src)) if i.suffix.lower() in exts and not i.stem.startswith("~"))

এছাড়াও এটি শুরু হওয়া সমস্ত ফাইলের নাম উপেক্ষা করে ~


3

প্যাট এর উত্তরের এক-লাইন তালিকা-বোধগম্য রূপটি রয়েছে (এর মধ্যে এটিও অন্তর্ভুক্ত রয়েছে যে আপনি একটি নির্দিষ্ট প্রকল্প ডিরেক্টরিতে গ্লোবাল করতে চেয়েছিলেন):

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

আপনি এক্সটেনশানগুলি ( for ext in exts) লুপ করেন এবং তারপরে প্রতিটি এক্সটেনশনের জন্য আপনি প্রতিটি ফাইলকে গ্লোব প্যাটার্নের সাথে মেলে ( for f in glob.glob(os.path.join(project_dir, ext)) take

এই সমাধানটি সংক্ষিপ্ত এবং কোনও অযৌক্তিকভাবে লুপগুলি, নেস্টেড তালিকা-বোধগম্যতা বা কোডের বিশৃঙ্খলা ব্যতীত ফাংশন ছাড়াই is খাঁটি, অভিব্যক্তিপূর্ণ, পাইথোনিক জেন

এই সমাধানটি আপনাকে extsআপনার কোড আপডেট না করেই এর একটি কাস্টম তালিকা পরিবর্তন করতে পারে। (এটি সর্বদা একটি ভাল অনুশীলন!)

তালিকা-বোধগম্যতা লরেন্টের সমাধানে (যা আমি ভোট দিয়েছি) একই ব্যবহার। তবে আমি যুক্তি দিয়ে বলব যে একটি পৃথক ফাংশনে একটি লাইন তৈরি করা সাধারণত অযৌক্তিক, তাই আমি এটি বিকল্প সমাধান হিসাবে সরবরাহ করছি providing

বোনাস:

আপনার যদি কেবল একটি একক ডিরেক্টরি নয়, সমস্ত উপ ডিরেক্টরিও সন্ধান recursive=Trueকরতে হয় তবে আপনি বহু-ডিরেক্টরি গ্লোব প্রতীক ** 1 ব্যবহার করতে পারেন :

files = [f for ext in exts 
         for f in glob.glob(os.path.join(project_dir, '**', ext), recursive=True)]

এটি glob.glob('<project_dir>/**/*.txt', recursive=True)প্রতিটি এক্সটেনশনের জন্য অনুরোধ করবে।

1 প্রযুক্তিগতভাবে, **গ্লোব প্রতীকটি কেবল ফরোয়ার্ড-স্ল্যাশ সহ এক বা একাধিক অক্ষরের সাথে মেলে /(একক *গ্লোব প্রতীকের বিপরীতে )। অনুশীলনে, আপনাকে কেবল মনে রাখতে হবে যে যতক্ষণ আপনি **ফরোয়ার্ড স্ল্যাশ (পথ বিভাজক) দিয়ে ঘিরে থাকেন ততক্ষণ এটি শূন্য বা আরও বেশি ডিরেক্টরিতে মেলে।


2

না glob, তবে এখানে তালিকা বোধগম্যতা ব্যবহার করে অন্য উপায়:

extensions = 'txt mdown markdown'.split()
projectFiles = [f for f in os.listdir(projectDir) 
                  if os.path.splitext(f)[1][1:] in extensions]

1

আপনার প্রয়োজনীয়গুলির সাথে বিদ্যমান সম্প্রসারণের তুলনা করে আপনি একটি ম্যানুয়াল তালিকা তৈরি করার চেষ্টা করতে পারেন।

ext_list = ['gif','jpg','jpeg','png'];
file_list = []
for file in glob.glob('*.*'):
  if file.rsplit('.',1)[1] in ext_list :
    file_list.append(file)


1

করার globএকাধিক প্রকারের ফাইল, আপনাকে কল করার প্রয়োজন glob()একটি লুপ ফাংশন বেশ কয়েকবার। যেহেতু এই ফাংশনটি কোনও তালিকা প্রত্যাবর্তন করে, তাই আপনাকে তালিকাগুলি একত্রিত করতে হবে।

উদাহরণস্বরূপ, এই ফাংশনটি কাজটি করে:

import glob
import os


def glob_filetypes(root_dir, *patterns):
    return [path
            for pattern in patterns
            for path in glob.glob(os.path.join(root_dir, pattern))]

সাধারণ ব্যবহার:

project_dir = "path/to/project/dir"
for path in sorted(glob_filetypes(project_dir, '*.txt', '*.mdown', '*.markdown')):
    print(path)

আপনি glob.iglob()একটি পুনরুক্তিকারী ব্যবহার করতে পারেন:

একটি পুনরুদ্ধারক ফিরিয়ে দিন যা গ্লোব () এর মতো একই মানগুলি একই সাথে সমস্ত সংরক্ষণ না করেই দেয়।

def iglob_filetypes(root_dir, *patterns):
    return (path
            for pattern in patterns
            for path in glob.iglob(os.path.join(root_dir, pattern)))

1

এক্সটেনশনের একটি তালিকা ব্যবহার করুন এবং এর মাধ্যমে পুনরাবৃত্তি করুন

from os.path import join
from glob import glob

files = []
extensions = ['*.gif', '*.png', '*.jpg']
for ext in extensions:
   files.extend(glob(join("path/to/dir", ext)))

print(files)

0

আপনি ফিল্টার ব্যবহার করতে পারেন:

import os
import glob

projectFiles = filter(
    lambda x: os.path.splitext(x)[1] in [".txt", ".mdown", ".markdown"]
    glob.glob(os.path.join(projectDir, "*"))
)

0

আপনিও এর reduce()মতো ব্যবহার করতে পারেন:

import glob
file_types = ['*.txt', '*.mdown', '*.markdown']
project_files = reduce(lambda list1, list2: list1 + list2, (glob.glob(t) for t in file_types))

এটি glob.glob()প্রতিটি প্যাটার্নের জন্য একটি তালিকা তৈরি করে এবং সেগুলিকে একটি তালিকাতে হ্রাস করে।


0

একটি গ্লোব, অনেক এক্সটেনশন ... তবে অসম্পূর্ণ সমাধান (অন্য ফাইলগুলির সাথে মেলে)।

filetypes = ['tif', 'jpg']

filetypes = zip(*[list(ft) for ft in filetypes])
filetypes = ["".join(ch) for ch in filetypes]
filetypes = ["[%s]" % ch for ch in filetypes]
filetypes = "".join(filetypes) + "*"
print(filetypes)
# => [tj][ip][fg]*

glob.glob("/path/to/*.%s" % filetypes)

0

আমার একই সমস্যা ছিল এবং এটিই আমি সামনে এলাম

import os, sys, re

#without glob

src_dir = '/mnt/mypics/'
src_pics = []
ext = re.compile('.*\.(|{}|)$'.format('|'.join(['png', 'jpeg', 'jpg']).encode('utf-8')))
for root, dirnames, filenames in os.walk(src_dir):
  for filename in filter(lambda name:ext.search(name),filenames):
    src_pics.append(os.path.join(root, filename))

0

তবুও অন্য সমাধান (ব্যবহার globএকাধিক ম্যাচ ব্যবহার পাথ পেতে patternsএবং ব্যবহার করে একটি একক তালিকায় সব পাথ মেশা reduceএবং add):

import functools, glob, operator
paths = functools.reduce(operator.add, [glob.glob(pattern) for pattern in [
    "path1/*.ext1",
    "path2/*.ext2"]])

0

আপনি যদি এটি ব্যবহার করেন pathlibতবে:

import pathlib

extensions = ['.py', '.txt']
root_dir = './test/'

files = filter(lambda p: p.suffix in extensions, pathlib.Path(root_dir).glob('**/*'))

print(list(files))

0

আমি পরীক্ষামূলক পরীক্ষাগুলি থেকে প্রাপ্ত ফলাফলগুলির দ্বারা দেখা গেল যে glob.globতাদের এক্সটেনশনের মাধ্যমে ফাইলগুলি ফিল্টার করার সর্বোত্তম উপায় নয়। এর কয়েকটি কারণ হ'ল:

  • গ্লোব্বিং " ভাষা " একাধিক এক্সটেনশনের নিখুঁত স্পেসিফিকেশনকে অনুমতি দেয় না।
  • ফাইল এক্সটেনশনের উপর নির্ভর করে ভুল ফলাফলগুলি অর্জন করতে প্রাক্তন পয়েন্টের ফলাফল।
  • গ্লোব্বিং পদ্ধতিটি অন্যান্য বেশিরভাগ পদ্ধতির চেয়ে ধীরে ধীরে প্রমাণিত হয়।
  • এমনকি এটি আশ্চর্যের হলেও অন্যান্য ফাইল সিস্টেমের অবজেক্টগুলিতেও " এক্সটেনশন " থাকতে পারে, ফোল্ডারও।

আমি পরীক্ষা করেছি নিম্নলিখিত (correcteness ও সময় দক্ষতা জন্য) 4বিভিন্ন পদ্ধতি একটি এক্সটেনশন এবং রাখে তাদের দ্বারা ফাইল ফিল্টার করার জন্য list:

from glob import glob, iglob
from re import compile, findall
from os import walk


def glob_with_storage(args):

    elements = ''.join([f'[{i}]' for i in args.extensions])
    globs = f'{args.target}/**/*{elements}'
    results = glob(globs, recursive=True)

    return results


def glob_with_iteration(args):

    elements = ''.join([f'[{i}]' for i in args.extensions])
    globs = f'{args.target}/**/*{elements}'
    results = [i for i in iglob(globs, recursive=True)]

    return results


def walk_with_suffixes(args):

    results = []
    for r, d, f in walk(args.target):
        for ff in f:
            for e in args.extensions:
                if ff.endswith(e):
                    results.append(path_join(r,ff))
                    break
    return results


def walk_with_regs(args):

    reg = compile('|'.join([f'{i}$' for i in args.extensions]))

    results = []
    for r, d, f in walk(args.target):
        for ff in f:
            if len(findall(reg,ff)):
                results.append(path_join(r, ff))

    return results

আমার ল্যাপটপে উপরের কোডটি চালিয়ে আমি নিম্নলিখিত স্বয়ংক্রিয়-বহনকারী ফলাফল পেয়েছি obtained

Elapsed time for '7 times glob_with_storage()':  0.365023 seconds.
mean   : 0.05214614
median : 0.051861
stdev  : 0.001492152
min    : 0.050864
max    : 0.054853

Elapsed time for '7 times glob_with_iteration()':  0.360037 seconds.
mean   : 0.05143386
median : 0.050864
stdev  : 0.0007847381
min    : 0.050864
max    : 0.052859

Elapsed time for '7 times walk_with_suffixes()':  0.26529 seconds.
mean   : 0.03789857
median : 0.037899
stdev  : 0.0005759071
min    : 0.036901
max    : 0.038896

Elapsed time for '7 times walk_with_regs()':  0.290223 seconds.
mean   : 0.04146043
median : 0.040891
stdev  : 0.0007846776
min    : 0.04089
max    : 0.042885

Results sizes:
0 2451
1 2451
2 2446
3 2446

Differences between glob() and walk():
0 E:\x\y\z\venv\lib\python3.7\site-packages\Cython\Includes\numpy
1 E:\x\y\z\venv\lib\python3.7\site-packages\Cython\Utility\CppSupport.cpp
2 E:\x\y\z\venv\lib\python3.7\site-packages\future\moves\xmlrpc
3 E:\x\y\z\venv\lib\python3.7\site-packages\Cython\Includes\libcpp
4 E:\x\y\z\venv\lib\python3.7\site-packages\future\backports\xmlrpc

Elapsed time for 'main':  1.317424 seconds.

এক্সটেনশানগুলির মাধ্যমে ফাইলগুলি ফিল্টার করার দ্রুততম উপায়টি এমনকি কুরুচিপূর্ণরূপে ঘটে। পদ্ধতিটি ব্যবহার করে যা নেস্টেড forলুপ এবং stringতুলনা endswith()

তদুপরি, আপনি দেখতে পাচ্ছেন, গ্লোব্বিং অ্যালগরিদমগুলি (প্যাটার্ন সহ E:\x\y\z\**/*[py][pyc]) এমনকি শুধুমাত্র 2দেওয়া এক্সটেনশন ( pyএবং pyc) ভুল ফলাফলও দেয়।


0
import glob
import pandas as pd

df1 = pd.DataFrame(columns=['A'])
for i in glob.glob('C:\dir\path\*.txt'):
    df1 = df1.append({'A': i}, ignore_index=True)
for i in glob.glob('C:\dir\path\*.mdown'):
    df1 = df1.append({'A': i}, ignore_index=True)
for i in glob.glob('C:\dir\path\*.markdown):
    df1 = df1.append({'A': i}, ignore_index=True)

হাই স্বেয় উ, স্বাগতম একটি ব্যাখ্যা যোগ বিবেচনা করুন।
টিয়াগো মার্টিনস পেরেস

-1

এই কাজ করা উচিত:

import glob
extensions = ('*.txt', '*.mdown', '*.markdown')
for i in extensions:
    for files in glob.glob(i):
        print (files)

-1

উদাহরণ স্বরূপ:

import glob
lst_img = []
base_dir = '/home/xy/img/'

# get all the jpg file in base_dir 
lst_img += glob.glob(base_dir + '*.jpg')
print lst_img
# ['/home/xy/img/2.jpg', '/home/xy/img/1.jpg']

# append all the png file in base_dir to lst_img
lst_img += glob.glob(base_dir + '*.png')
print lst_img
# ['/home/xy/img/2.jpg', '/home/xy/img/1.jpg', '/home/xy/img/3.png']

একটি অনুষ্ঠান:

import glob
def get_files(base_dir='/home/xy/img/', lst_extension=['*.jpg', '*.png']):
    """
    :param base_dir:base directory
    :param lst_extension:lst_extension: list like ['*.jpg', '*.png', ...]
    :return:file lists like ['/home/xy/img/2.jpg','/home/xy/img/3.png']
    """
    lst_files = []
    for ext in lst_extension:
        lst_files += glob.glob(base_dir+ext)
    return lst_files
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.