পাইথনে লিনাক্স কনসোল উইন্ডো প্রস্থ কীভাবে পাবেন


264

অজগর থেকে কি কনসোলের প্রস্থটি প্রোগ্রামিকভাবে নির্ধারণ করার কোনও উপায় আছে? আমি বোঝাতে চাই এমন অক্ষরের সংখ্যা যা উইন্ডো পিক্সেল প্রস্থ নয় মোড়ানো ছাড়া এক লাইনে ফিট করে।

সম্পাদন করা

লিনাক্সে কাজ করে এমন কোনও সমাধান খুঁজছেন


একটি "কলামগুলি নির্ভর" মুদ্রণ প্রক্রিয়াটি আরও বিস্তৃত সমাধানের জন্য এই উত্তরটি দেখুন। স্ট্যাকওভারফ্লো.
com/ প্রশ্নগুলি /

উত্তর:


261
import os
rows, columns = os.popen('stty size', 'r').read().split()

স্টাইটি সাইজ কমান্ডটি ব্যবহার করে যা পাইথন মেলিং তালিকার একটি থ্রেড অনুসারে লিনাক্সে যুক্তিসঙ্গতভাবে সর্বজনীন। এটি ফাইল হিসাবে 'স্টটি সাইজ' কমান্ডটি খুলবে, এটি থেকে 'পড়বে' এবং স্থানাঙ্কগুলি পৃথক করতে একটি সাধারণ স্ট্রিং বিভক্ত ব্যবহার করে।

Os.en পরিবেশ ["COLUMNS"] মানের বিপরীতে (যা আমি আমার স্ট্যান্ডার্ড শেল হিসাবে ব্যাশ ব্যবহার করার পরেও অ্যাক্সেস করতে পারি না) ডেটাও আপ টু ডেট হবে যেখানে আমি বিশ্বাস করি যে os.en পরিবেশ ["COLUMNS"] পাইথন ইন্টারপ্রেটারের প্রবর্তনের সময়টির জন্য মানটি বৈধ হবে (মনে করুন যে ব্যবহারকারী তখন থেকে উইন্ডোটি পুনরায় আকার দিয়েছেন)।

(অজগর 3.3+ এ কীভাবে করা যায় সে সম্পর্কে @ গ্রিংসুয়েভের উত্তর দেখুন)


1
"আকার" এর পরিবর্তে আপনি "-এ" পাস করেন তবে আপনি এটি সোলারিতে কাজ করতে পারেন। সেমিকোলন ডিলিমিট আউটপুটে "সারি = Y; কলামগুলি = এক্স" থাকবে।
জোসেফ গারভিন

5
COLUMNS ব্যাশ-এ ডিফল্টরূপে রফতানি করা হয় না, এজন্য os.en পরিবেশ ["COLUMNS"] কাজ করে না।
কেজেল আন্দ্রেসসেন

38
rows, columns = subprocess.check_output(['stty', 'size']).split()কিছুটা খাটো, প্লাস সাব প্রসেসটি হ'ল ভবিষ্যত
সিডোসোর্ন

7
স্টপির চেয়ে টিপুট ভাল, কারণ স্টিপি পাইপ দিয়ে কাজ করতে পারে না।
liuyang1

5
rows, columns = subprocess.check_output(['stty', 'size']).decode().split()আপনি যদি পাই 2/3 সামঞ্জস্যের জন্য ইউনিকোড স্ট্রিং চান
ব্রাইস গিন্টা

263

এটি মডিউলে কেন রয়েছে তা নিশ্চিত নয় shutil, তবে এটি আউটপুট টার্মিনালের আকার জিজ্ঞাসা করে পাইথন ৩.৩ এ সেখানে পৌঁছেছে :

>>> import shutil
>>> shutil.get_terminal_size((80, 20))  # pass fallback
os.terminal_size(columns=87, lines=23)  # returns a named-tuple

একটি নিম্ন-স্তরের বাস্তবায়ন ওএস মডিউলে রয়েছে। উইন্ডোজেও কাজ করে।

পাইথন ৩.২ এবং নীচে একটি ব্যাকপোর্ট এখন উপলভ্য:


25
এর কারণ আপনার আর ২. using ব্যবহার করা উচিত নয়, লাফিয়ে 3..x করে ফেলুন worth
anthonyryan1

5
@osirisgothra অনেক হোস্টিং সরবরাহকারী পাইথন 3 এখনও সমর্থন করেন না, তাই আমাদের মধ্যে কয়েকজন পিছনের শেষের বিকাশের জন্য পাইথন 2 ব্যবহার করতে বাধ্য হয়। যদিও এর টার্মিনাল আকার পাওয়ার সাথে কিছু করার নেই ...
হোয়াইটবার্ড

4
@osirisgothra কারণ পাইথন 2 কোডের প্রচুর পরিমাণ রয়েছে যা পোর্টে খুব বেশি কাজ নিতে পারে। এছাড়াও, পাইপির কাছে পাইথন 3 এর চেয়ে কম সমর্থন রয়েছে।
অ্যান্টিমনি

2
@ হোয়াইটবার্ডের কোনও কারণ আছে যে গ্রাহক একটি ভিপিএসে পাইথন 3 ইনস্টল করতে পারবেন না? বা 2016 সালে, এখনও কি লোকেরা ভাগ করা হোস্টিং ব্যবহার করছে যার প্রশাসক পাইথন 3 ইনস্টল করতে রাজি নয়? উদাহরণস্বরূপ, ওয়েবফ্যাকশন শেয়ার্ড হোস্টিং python3.5ইনস্টল হয়েছে।
দামিয়ান ইয়ারিক

2
একটি সমাধানের জন্য +1 যা কোনও ফাইল থেকে স্ট্যান্ডার্ড ইনপুট পুনঃনির্দেশিত হওয়ার সময়ও কাজ করে! অন্যান্য সমাধানের সঙ্গে, আমি হয় পেয়ে ছিল Inappropriate ioctl for deviceত্রুটি / সতর্কবার্তা বা 80. সংজ্ঞায়িত ফলব্যাক ভ্যালু পাচ্ছি
pawamoy

65

ব্যবহার

import console
(width, height) = console.getTerminalSize()

print "Your terminal's width is: %d" % width

সম্পাদনা : ওহ, আমি দুঃখিত। এটি পাইথন স্ট্যান্ডার্ড লিব নয়, এখানে কনসোল.পি এর উত্স রয়েছে (আমি জানি না এটি কোথা থেকে এসেছে)।

মডিউলটি এটির মতো কাজ করে বলে মনে হচ্ছে: এটি termcapহ্যাঁ, পাওয়া যায় কিনা তা পরীক্ষা করে । এটি যে ব্যবহার করে; যদি না এটি পরীক্ষা করে যে টার্মিনালটি একটি বিশেষ ioctlকল সমর্থন করে এবং এটিও কাজ করে না, এটি পরিবেশের পরিবর্তনশীলগুলির জন্য কিছু শেল রফতানি করে তা পরীক্ষা করে। এটি সম্ভবত ইউএনআইএক্স-এ কাজ করবে।

def getTerminalSize():
    import os
    env = os.environ
    def ioctl_GWINSZ(fd):
        try:
            import fcntl, termios, struct, os
            cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ,
        '1234'))
        except:
            return
        return cr
    cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
    if not cr:
        try:
            fd = os.open(os.ctermid(), os.O_RDONLY)
            cr = ioctl_GWINSZ(fd)
            os.close(fd)
        except:
            pass
    if not cr:
        cr = (env.get('LINES', 25), env.get('COLUMNS', 80))

        ### Use get(key[, default]) instead of a try/catch
        #try:
        #    cr = (env['LINES'], env['COLUMNS'])
        #except:
        #    cr = (25, 80)
    return int(cr[1]), int(cr[0])

5
দ্রুত উত্তর দেওয়ার জন্য ধন্যবাদ, তবে এখানে ( effbot.org/zone/console-handbook.htm ) এতে বলা হয়েছে যে "কনসোল মডিউলটি বর্তমানে কেবল উইন্ডোজ 95, 98, এনটি এবং 2000 এর জন্য উপলব্ধ" " আমি এমন একটি সমাধান খুঁজছি যা লিনাক্সে কাজ করে। এটি সম্ভবত ট্যাগ থেকে পরিষ্কার ছিল না, আমি সেই অনুযায়ী প্রশ্নটি সম্পাদনা করব।
সের্গেই গোলভোচেঙ্কো

2
যেহেতু আপনি ব্যবহার করছেন এই "কনসোল" মডিউলটি স্ট্যান্ডার্ড পাইথন লাইব্রেরিতে নেই, তাই আপনার উত্স কোড বা কমপক্ষে এটির একটি লিঙ্ক সরবরাহ করা উচিত।
নসক্লো

আমি এ সম্পর্কে দুঃখিত। আসলে, আমি সেই মডিউলটি জানতাম না। আমি আমদানি কনসোলটি চেষ্টা করেছিলাম এবং এটি কাজ করে, আমি কনসোল ব্যবহার করেছি <<tab> <tab> এবং getTerminalSize () প্রদর্শিত হয়েছে। পরিবর্তে খুঁজছেন যেখানে এটা আমি ইতিমধ্যে একটি উত্তর পোস্ট থেকে, কারণ আমি সরলতা ভাগ্যবান ছিল গ্রাম
জোহানেস উইস

আমি হয়ত অন্য একটি "কনসোল" মডিউলটি খুঁজছি, আপনি কি দয়া করে আপনার জন্য একটি লিঙ্ক সরবরাহ করতে পারেন?
সের্গেই গোলভোচেঙ্কো

4
ওহ, এবং কোডটিতে গাদা না করা, তবে "ক্র" একটি বিভ্রান্তিমূলক নাম কারণ এটি বোঝায় যে টিপলটি হ'ল (কলস, সারি)। বাস্তবে, এটি বিপরীত।
পল ডু বোইস

57

উপরের কোডটি আমার লিনাক্সটিতে সঠিক ফলাফল দেয়নি কারণ উইনসাইজ-স্ট্রাক্টটিতে 4 স্বাক্ষরযুক্ত শর্টস রয়েছে, 2 স্বাক্ষরিত শর্টস নয়:

def terminal_size():
    import fcntl, termios, struct
    h, w, hp, wp = struct.unpack('HHHH',
        fcntl.ioctl(0, termios.TIOCGWINSZ,
        struct.pack('HHHH', 0, 0, 0, 0)))
    return w, h

এইচপি এবং এইচপি পিক্সেল প্রস্থ এবং উচ্চতা থাকতে হবে, কিন্তু না।


4
এই কাজ করা উচিত কিভাবে হয়; নোট করুন যে আপনি যদি টার্মিনালে প্রিন্ট করতে চান তবে আপনার ফাইলটি '1' ফাইল বর্ণনাকারী হিসাবে ব্যবহার করা উচিত (ioctl এর প্রথম আর্গুমেন্ট), কারণ স্টিডিন একটি পাইপ বা কিছু আলাদা tty হতে পারে।
mic_e

1
সম্ভবত 0 এর সাথে প্রতিস্থাপন করা উচিতfcntl.ioctl(sys.stdin.fileno(), ...
রায়লু

4
এটি সেরা উত্তর - আপনার ব্যবহারকারীরা খুশি হবেন যে কেবলমাত্র মেয়াদী প্রস্থ পাওয়ার জন্য কোনও আশ্চর্য সাবপ্রসেস ঘটেনি
zzzeek

4
এটি সত্যই পরিষ্কার উত্তর। আমি মনে করি আপনার ব্যবহার করা উচিত stdoutবা এর stderrপরিবর্তে stdin, যদিও। stdinখুব ভাল একটি পাইপ হতে পারে। আপনি যেমন একটি লাইন যোগ করতে চাইতে পারেন if not os.isatty(0): return float("inf")
mic_e

এটি কোনওভাবে ক্রোমবুক টার্মিনালে কাজ করে যার কোনও কার্যকারিতা নেই। +1
হাইপারনিউটারিনো

39

আমি চারপাশে অনুসন্ধান করেছি এবং এখানে উইন্ডোজগুলির জন্য একটি সমাধান পেয়েছি:

http://code.activestate.com/recipes/440694-determine-size-of-console-window-on-windows/

এবং এখানে লিনাক্স জন্য একটি সমাধান।

সুতরাং এখানে একটি সংস্করণ রয়েছে যা লিনাক্স, ওএস এক্স এবং উইন্ডোজ / সাইগউইন উভয় ক্ষেত্রেই কাজ করে:

""" getTerminalSize()
 - get width and height of console
 - works on linux,os x,windows,cygwin(windows)
"""

__all__=['getTerminalSize']


def getTerminalSize():
   import platform
   current_os = platform.system()
   tuple_xy=None
   if current_os == 'Windows':
       tuple_xy = _getTerminalSize_windows()
       if tuple_xy is None:
          tuple_xy = _getTerminalSize_tput()
          # needed for window's python in cygwin's xterm!
   if current_os == 'Linux' or current_os == 'Darwin' or  current_os.startswith('CYGWIN'):
       tuple_xy = _getTerminalSize_linux()
   if tuple_xy is None:
       print "default"
       tuple_xy = (80, 25)      # default value
   return tuple_xy

def _getTerminalSize_windows():
    res=None
    try:
        from ctypes import windll, create_string_buffer

        # stdin handle is -10
        # stdout handle is -11
        # stderr handle is -12

        h = windll.kernel32.GetStdHandle(-12)
        csbi = create_string_buffer(22)
        res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
    except:
        return None
    if res:
        import struct
        (bufx, bufy, curx, cury, wattr,
         left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
        sizex = right - left + 1
        sizey = bottom - top + 1
        return sizex, sizey
    else:
        return None

def _getTerminalSize_tput():
    # get terminal width
    # src: http://stackoverflow.com/questions/263890/how-do-i-find-the-width-height-of-a-terminal-window
    try:
       import subprocess
       proc=subprocess.Popen(["tput", "cols"],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
       output=proc.communicate(input=None)
       cols=int(output[0])
       proc=subprocess.Popen(["tput", "lines"],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
       output=proc.communicate(input=None)
       rows=int(output[0])
       return (cols,rows)
    except:
       return None


def _getTerminalSize_linux():
    def ioctl_GWINSZ(fd):
        try:
            import fcntl, termios, struct, os
            cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ,'1234'))
        except:
            return None
        return cr
    cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
    if not cr:
        try:
            fd = os.open(os.ctermid(), os.O_RDONLY)
            cr = ioctl_GWINSZ(fd)
            os.close(fd)
        except:
            pass
    if not cr:
        try:
            cr = (env['LINES'], env['COLUMNS'])
        except:
            return None
    return int(cr[1]), int(cr[0])

if __name__ == "__main__":
    sizex,sizey=getTerminalSize()
    print  'width =',sizex,'height =',sizey

আপনি নিজেই এই সময়টি আমাকে বাঁচিয়েছিলেন। লিনাক্সে কাজ করে। উইন্ডোজেও কাজ করা উচিত। ধন্যবাদ!
স্টিভ ভি।

30

এটি হয়:

import os
columns, rows = os.get_terminal_size(0)
# or
import shutil
columns, rows = shutil.get_terminal_size()

shutilফাংশন প্রায় শুধু একটি মোড়কের হয় os, যেটা কিছু ত্রুটি ক্যাচ এবং একটি ফলব্যাক সেট আপ কিন্তু এটা এক বিশাল সতর্কীকরণ আছে - এটা যখন বংশীধ্বনিতুল্য বিরতি! এটি একটি বিশাল বিশাল চুক্তি। পরিবর্তে
পাইপিং করার সময় টার্মিনাল আকার পেতে os.get_terminal_size(0)

প্রথম যুক্তি 0 হ'ল একটি যুক্তি যা নির্দেশ করে যে স্ট্যান্ডিন ফাইল বর্ণনাকারী ডিফল্ট স্টডআউটের পরিবর্তে ব্যবহার করা উচিত। আমরা স্টিডিন ব্যবহার করতে চাই কারণ স্টাডআউট যখন পাইপ করা হয় তখন নিজেকে বিচ্ছিন্ন করে দেয় যা এই ক্ষেত্রে ত্রুটি উত্থাপন করে।

আমি স্টাডিন আর্গুমেন্টের পরিবর্তে স্টাডআউট ব্যবহার করা কখন কী বোধগম্য হবে এবং এখানে কেন এটি একটি ডিফল্ট তা জানার চেষ্টা করেছি।


3
os.get_terminal_size()পাইথন ৩.৩
ভিলপেক্স

আমি প্রথমে শুটিল চেষ্টা করেছিলাম, এবং এটি প্রথম চেষ্টা করে। আমি পাইথন 3.6+ ব্যবহার করছি।
ড্যান

ব্যবহার os.get_terminal_size(0)যদি আপনি নল stdin ক্র্যাশ হবে। চেষ্টা করুন:echo x | python3 -c 'import os; print(os.get_terminal_size(0))'
ehabkost

19

পাইথন ৩.৩ থেকে শুরু করে এটি সরাসরি এগিয়ে রয়েছে: https://docs.python.org/3/library/os.html#querying-the-size-of-a-terminal

>>> import os
>>> ts = os.get_terminal_size()
>>> ts.lines
24
>>> ts.columns
80

16
shutil.get_terminal_size() is the high-level function which should normally be used, os.get_terminal_size is the low-level implementation.
মধ্য_কিড

1
এটি উপরে বর্ণিত এক বছরের পুরানো উত্তরের একটি অনুলিপি copy
গ্রিঙ্গো সুভেভ

6

দেখে মনে হচ্ছে যে কোডটির সাথে কিছু সমস্যা আছে, জোহানস:

  • getTerminalSize প্রয়োজন import os
  • কি env? মত দেখাচ্ছে os.environ

এছাড়াও, কেন স্যুইচ linesএবং colsফিরে আসার আগে? যদি TIOCGWINSZএবং sttyউভয়ই linesতখন বলে cols, আমি বলি যে এটি ছেড়ে দিন। আমি অসম্পূর্ণতা লক্ষ্য করার আগে এটি 10 ​​মিনিটের জন্য আমাকে একটি ভাল বিভ্রান্ত করেছে।

শ্রীধর, আমি আউটপুট পাইপ করার সময় আমি ত্রুটিটি পাই নি। আমি পুরোপুরি নিশ্চিত যে চেষ্টাটি বাদ দিয়ে এটি সঠিকভাবে ধরা হচ্ছে।

পাস্কল, "HHHH"আমার মেশিনে কাজ করে না, তবে "hh"করে। আমি এই ফাংশনের জন্য ডকুমেন্টেশন খুঁজে পেতে সমস্যা ছিল। দেখে মনে হচ্ছে এটি প্ল্যাটফর্ম নির্ভর।

chochem, সংহত।

এখানে আমার সংস্করণ:

def getTerminalSize():
    """
    returns (lines:int, cols:int)
    """
    import os, struct
    def ioctl_GWINSZ(fd):
        import fcntl, termios
        return struct.unpack("hh", fcntl.ioctl(fd, termios.TIOCGWINSZ, "1234"))
    # try stdin, stdout, stderr
    for fd in (0, 1, 2):
        try:
            return ioctl_GWINSZ(fd)
        except:
            pass
    # try os.ctermid()
    try:
        fd = os.open(os.ctermid(), os.O_RDONLY)
        try:
            return ioctl_GWINSZ(fd)
        finally:
            os.close(fd)
    except:
        pass
    # try `stty size`
    try:
        return tuple(int(x) for x in os.popen("stty size", "r").read().split())
    except:
        pass
    # try environment variables
    try:
        return tuple(int(os.getenv(var)) for var in ("LINES", "COLUMNS"))
    except:
        pass
    # i give up. return default.
    return (25, 80)

আমি খুব ঘুরে বেড়াচ্ছিলাম env, এবং এটি সত্যই env = os.environ, গৃহীত উত্তর থেকে ।
sdaau

6

আপনি এই স্ক্রিপ্টটি কল করার সময় যদি কোনও নিয়ন্ত্রণকারী টার্মিনাল না থাকে তবে এখানে পাইথন 2 বাস্তবায়ন অনেকগুলি ব্যর্থ হবে। এটি আসলে টার্মিনাল কিনা তা নির্ধারণ করতে আপনি sys.stdout.isatty () পরীক্ষা করে দেখতে পারেন, তবে এটি একটি গুচ্ছ কেসকে বাদ দেবে, তাই আমি বিশ্বাস করি যে বিল্টিন কার্স প্যাকেজটি ব্যবহার করে টার্মিনালের আকার নির্ধারণের সবচেয়ে অজগর উপায়।

import curses
w = curses.initscr()
height, width = w.getmaxyx()

2

আমি এখান থেকে সমাধানটি চেষ্টা করছিলাম যা এখানে কল করে stty size:

columns = int(subprocess.check_output(['stty', 'size']).split()[1])

তবে এটি আমার পক্ষে ব্যর্থ হয়েছিল কারণ আমি এমন একটি স্ক্রিপ্টে কাজ করছি যা স্টিডিনে পুনঃনির্দেশিত ইনপুট আশা করে এবং stty অভিযোগ করবে যে "স্টিডিন টার্মিনাল নয়" এই ক্ষেত্রে।

আমি এটিকে এটির মতো কাজ করতে সক্ষম হয়েছি:

with open('/dev/tty') as tty:
    height, width = subprocess.check_output(['stty', 'size'], stdin=tty).split()

1

@ পুনর্নবীটির উত্তরটি ভালভাবে কাজ করে, তবে এতে একটি সমস্যা রয়েছে: os.popen এখন হ্রাস করা হয়েছেsubprocessমডিউল পরিবর্তে ব্যবহার করা উচিত, তাই এটি হলো @ reannual এর কোড যে ব্যবহার সম্পর্কে একটি সংস্করণ subprocessএবং সরাসরি (প্রশ্নের উত্তর একটি সরাসরি কলামের প্রস্থ দিয়ে int:

import subprocess

columns = int(subprocess.check_output(['stty', 'size']).split()[1])

ওএস এক্স ১০.৯-এ পরীক্ষা করা হয়েছে


1

চেষ্টা "দোয়া"

আমি খুব একই জিনিস খুঁজছিলাম। এটি ব্যবহার করা খুব সহজ এবং টার্মিনালে রঙিন, স্টাইলিং এবং অবস্থান নির্ধারণের জন্য সরঞ্জাম সরবরাহ করে। আপনার যা প্রয়োজন তা সহজ:

from blessings import Terminal

t = Terminal()

w = t.width
h = t.height

লিনাক্সে কবজির মতো কাজ করে। (আমি ম্যাকোএসএক্সএক্স এবং উইন্ডোজ সম্পর্কে নিশ্চিত নই)

ডাউনলোড এবং ডকুমেন্টেশন এখানে

অথবা আপনি এটি পাইপ দিয়ে ইনস্টল করতে পারেন:

pip install blessings

আজকাল আমি "ধন্য" বলবো যা বর্তমানে "আশীর্বাদ" এর একটি বজায় রাখা কাঁটাচামচ (এবং বর্ধন)।
জিজোলো

1

যদি আপনি পাইথন ৩.৩ বা তার বেশি ব্যবহার করেন তবে আমি বিল্ট-ইনটি get_terminal_size()ইতিমধ্যে প্রস্তাবিত হিসাবে সুপারিশ করব। তবে আপনি যদি কোনও পুরানো সংস্করণে আটকে থাকেন এবং এটি করার একটি সহজ, ক্রস প্ল্যাটফর্মের উপায় চান, আপনি অ্যাসিমেটিক্স ব্যবহার করতে পারেন । এই প্যাকেজটি পাইথনের সংস্করণগুলিকে ২.7 এ সমর্থন করে এবং বর্তমান টার্মিনাল / কনসোল আকার পেতে উপরে প্রস্তাবিতগুলির অনুরূপ বিকল্পগুলি ব্যবহার করে।

কেবল আপনার Screenশ্রেণিটি তৈরি করুন এবং dimensionsউচ্চতা এবং প্রস্থটি পেতে সম্পত্তিটি ব্যবহার করুন । এটি লিনাক্স, ওএসএক্স এবং উইন্ডোজে কাজ করার জন্য প্রমাণিত হয়েছে।

ওহ - এবং এখানে সম্পূর্ণ প্রকাশ: আমি লেখক, সুতরাং এটি কাজ করতে যদি আপনার কোনও সমস্যা হয় তবে নির্দ্বিধায় একটি নতুন সমস্যা খুলুন।


0

এখানে একটি সংস্করণ রয়েছে যা লিনাক্স এবং সোলারিসের সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত। ম্যাচচাইন থেকে পোস্ট এবং কমিটের ভিত্তিতে । সাবপ্রসেস মডিউলটি প্রয়োজন।

ডিফ টার্মাইজ ():
    আমদানি শ্লেক্স, সাবপ্রসেস, পুনরায়
    আউটপুট = সাবপ্রসেস.সেক_আউটপুট (শ্লেক্স.স্প্লিট ('/ বিন / স্টটি -a'))
    মি = পুনঃ অনুসন্ধান ('সারিগুলি \ ডি + (? পি \ ডি +); কলামগুলি \ ডি + (? পি \ ডি +);', আউটপুট)
    যদি আমি:
        এম.আর.আর.পি ('সারি'), এম.গ্রুপ ('কলাম') ফেরত দিন
    OSError উত্থাপন ('খারাপ প্রতিক্রিয়া:% s'% (আউটপুট))
>>> টার্মাইজ ()
('40', '100')
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.