பைதான் துணைச் செயல்முறை.Popen எடுத்துக்காட்டுகள்

Paitan Tunaic Ceyalmurai Popen Etuttukkattukal



பைதான் துணைச் செயலாக்கம் என்பது வெவ்வேறு ஷெல் கட்டளைகள், செயல்முறைகள் மற்றும் பைதான் ஸ்கிரிப்டைப் பயன்படுத்தி மற்றொரு ஸ்கிரிப்ட் அல்லது இயங்கக்கூடிய கோப்புகளை இயக்க பயன்படும் பயனுள்ள தொகுதிகளில் ஒன்றாகும். ஒரு செயல்முறையிலிருந்து மற்றொரு செயல்முறைக்கு தரவை திருப்பிவிடவும், குழந்தை செயல்முறைகளால் உருவாக்கப்படும் பிழைகளைக் கையாளவும் இது பயன்படுத்தப்படலாம். துணை செயல்முறை தொகுதி பல்வேறு நோக்கங்களுக்காகப் பயன்படுத்தப்படும் பல வகுப்புகளைக் கொண்டுள்ளது. 'subprocess.Popen' வகுப்பு என்பது இந்த தொகுதியின் வகுப்புகளில் ஒன்றாகும், இது வெளிப்புற செயல்முறைகளுடன் தொடர்பு கொள்ளவும், செயல்முறைகளில் பல்வேறு வகையான பணிகளை செய்யவும் பயன்படுகிறது. பைதான் ஸ்கிரிப்ட்டில் உள்ள 'subprocess.Popen' வகுப்பின் பல பயன்பாடுகள் இந்த டுடோரியலில் காட்டப்பட்டுள்ளன.

உள்ளடக்கத்தின் தலைப்பு:

  1. ஒரு எளிய லினக்ஸ் கட்டளையை இயக்கவும்
  2. உள்ளீட்டுத் தரவுடன் கட்டளையை இயக்கவும்
  3. பைதான் ஸ்கிரிப்டை இயக்கவும்
  4. துணைச் செயலாக்கப் பிழையைக் கையாளவும்
  5. துணைச் செயல்பாட்டின் குறியீட்டைத் திரும்பவும்.Popen
  6. துணைச் செயலியின் வெளியீட்டை கோப்பிற்கு திருப்பி விடவும்
  7. துணைச் செயலாக்கத்தைப் பயன்படுத்தி பல செயலாக்கம்.Popen
  8. உள்ளீடு மற்றும் அவுட்புட் ஸ்ட்ரீமைக் கையாளவும் கள்
  9. காலக்கெடு மற்றும் தாமதத்தைக் கட்டுப்படுத்தவும்
  10. ஸ்ட்ரீமிங் உள்ளீட்டைப் படிக்கவும்

ஒரு எளிய லினக்ஸ் கட்டளையை இயக்கவும்

தற்போதைய கணினி தேதி மற்றும் நேரத்தைக் காட்ட 'தேதி' கட்டளை பயன்படுத்தப்படுகிறது. பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும், இது 'தேதி' கட்டளையை இயக்கும் ஒரு துணை செயல்முறையை உருவாக்குகிறது மற்றும் இந்த கட்டளையின் வெளியீட்டை அச்சிடவும்:

#தொகுதியை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

#துணை செயலாக்கத்திற்கான கட்டளையை வரையறுக்கவும்

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

வெளியீடு = துணை செயல்முறை . போபன் ( [ 'தேதி' ] , stdout = துணை செயல்முறை . குழாய் )

#செயல்முறையுடன் தொடர்புகொள்வதன் மூலம் வெளியீடு மற்றும் பிழையை மீட்டெடுக்கவும்

stdout , stderr = வெளியீடு. தொடர்பு ( )

#வெளியீட்டை அச்சிடுக

அச்சு ( stdout. டிகோட் ( ) )

வெளியீடு:







முந்தைய ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்:



  ப1



மேலே செல்





உள்ளீட்டுத் தரவுடன் கட்டளையை இயக்கவும்

'-c' விருப்பத்துடன் 'wc' கட்டளை இந்த கட்டளையுடன் வழங்கப்படும் சரம் மதிப்பின் மொத்த எழுத்துக்களின் எண்ணிக்கையை கணக்கிட பயன்படுகிறது. 'wc –c' கட்டளைகளை இயக்க Popen() செயல்பாட்டின் துணை செயல்முறையை உருவாக்கும் பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும். ஸ்கிரிப்டை இயக்கிய பிறகு, சரத்தின் மதிப்பு டெர்மினலில் இருந்து எடுக்கப்பட்டு, உள்ளீட்டு சரத்தின் மொத்த எழுத்துக்கள் வெளியீட்டில் அச்சிடப்படும்.

#தொகுதியை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

#துணை செயலாக்கத்திற்கான கட்டளையை வரையறுக்கவும்

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

வெளியீடு = துணை செயல்முறை . போபன் ( [ 'wc' , '-c' ] , stdout = துணை செயல்முறை . குழாய் )

#செயல்முறையுடன் தொடர்புகொள்வதன் மூலம் வெளியீடு மற்றும் பிழையை மீட்டெடுக்கவும்

stdout , stderr = வெளியீடு. தொடர்பு ( )

#வெளியீட்டை அச்சிடுக

அச்சு ( stdout. டிகோட் ( ) )

வெளியீடு:



'பைதான் துணைச் செயலாக்க எடுத்துக்காட்டுகள்' உள்ளீட்டு மதிப்பிற்கு பின்வரும் வெளியீடு தோன்றும்:

மேலே செல்

பைதான் ஸ்கிரிப்டை இயக்கவும்

இரண்டு எண்களின் கூட்டுத்தொகையைக் கணக்கிடும் பின்வரும் ஸ்கிரிப்ட் மூலம் “sum.py” என்ற பைதான் கோப்பை உருவாக்கவும், இந்த எண்கள் கட்டளை வரி வாதங்களாக வழங்கப்படுகின்றன:

sum.py

#தேவையான தொகுதியை இறக்குமதி செய்யவும்

இறக்குமதி sys

#மொத்த வாதங்களை எண்ணுங்கள்

n = மட்டுமே ( sys . argv )

#முதல் இரண்டு வாத மதிப்புகளைச் சேர்க்கவும்

தொகை = முழு எண்ணாக ( sys . argv [ 1 ] ) + முழு எண்ணாக ( sys . argv [ 2 ] )

#கூடுதல் முடிவை அச்சிடவும்

அச்சு ( 'தொகை' + sys . argv [ 1 ] + 'மற்றும்' + sys . argv [ 2 ] + ' இருக்கிறது' , தொகை )

ஒரு பைத்தானை உருவாக்கவும் கோப்பு உடன் பின்வரும் ஸ்கிரிப்ட் பைத்தானை இயக்கும் கோப்பு பெயரிடப்பட்டது தொகை . பை உடன் a உருவாக்குவதன் மூலம் இரண்டு வாதங்கள் துணை செயல்முறை .

#தொகுதியை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

#பைதான் ஸ்கிரிப்டை துணைச் செயல்பாட்டில் இயக்கவும்

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

வெளியீடு = துணை செயல்முறை . போபன் ( [ 'பைதான் 3' , 'sum.py' , '25' , '55' ] , stdout = துணை செயல்முறை . குழாய் ) #செயல்முறையுடன் தொடர்புகொள்வதன் மூலம் வெளியீடு மற்றும் பிழையை மீட்டெடுக்கவும்

stdout , stderr = வெளியீடு. தொடர்பு ( )

#வெளியீட்டை அச்சிடவும்

அச்சு ( stdout. டிகோட் ( ) )

வெளியீடு:

முந்தைய ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்:

மேலே செல்

`

துணைச் செயலாக்கப் பிழையைக் கையாளவும்

பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும், இது 'முயற்சி-தவிர' தொகுதியைப் பயன்படுத்தி துணைச் செயலியின் பிழைகளைக் கையாளுகிறது. ஒரு கட்டளை பயனரிடமிருந்து எடுக்கப்பட்டு அது துணைச் செயலாக்கத்தால் செயல்படுத்தப்படுகிறது. பயனரிடமிருந்து ஏதேனும் தவறான கட்டளை எடுக்கப்பட்டால் பிழைச் செய்தி காட்டப்படும்.

#தொகுதிகளை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

இறக்குமதி sys

#பயனரிடமிருந்து கட்டளையை எடுக்கவும்

கட்டளை = உள்ளீடு ( 'சரியான கட்டளையை உள்ளிடவும்:' )

முயற்சி :

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

வெளியீடு = துணை செயல்முறை . போபன் ( [ கட்டளை ] , stdout = துணை செயல்முறை . குழாய் )

#செயல்முறையுடன் தொடர்புகொள்வதன் மூலம் வெளியீடு மற்றும் பிழையை மீட்டெடுக்கவும்

stdout , stderr = வெளியீடு. தொடர்பு ( )

#வெளியீட்டை அச்சிடுக

அச்சு ( stdout. டிகோட் ( ) )

தவிர :

அச்சு ( 'பிழை:' , sys . exc_info ( ) )

வெளியீடு:

'pwd' கட்டளையை உள்ளீடாக எடுத்துக் கொண்டால் பின்வரும் வெளியீடு தோன்றும், அது சரியான கட்டளையாகும்:

  ப4-1

'usr' கட்டளையை உள்ளீடாக எடுத்துக் கொண்டால் பின்வரும் வெளியீடு தோன்றும், அது சரியான கட்டளையாகும்:

  ப4-2

மேலே செல்

துணைச் செயல்பாட்டின் குறியீட்டைத் திரும்பவும்.Popen

தற்போதைய இடத்திலிருந்து அனைத்து பைதான் கோப்புகளின் பட்டியலைப் பெற துணைச் செயலாக்கத்தின் மூலம் “ls” கட்டளையை இயக்கும் பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும். ஸ்கிரிப்ட் துணை செயல்முறையை முடிக்க காத்திருக்கிறது மற்றும் திரும்பும் குறியீட்டை அச்சிடுகிறது.

#தொகுதிகளை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

இறக்குமதி sys

#கட்டளையை அமைக்கவும்

கட்டளை = [ 'ls' , '-எல்' , '*.py' ]

முயற்சி :

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

வெளியீடு = துணை செயல்முறை . போபன் ( கட்டளை , stdout = துணை செயல்முறை . குழாய் ,

stderr = துணை செயல்முறை . குழாய் , உரை = உண்மை )

#செயல்முறையை முடிக்க காத்திருங்கள்

retCode = வெளியீடு. காத்திரு ( )

#திரும்பக் குறியீட்டை அச்சிடவும்

அச்சு ( 'திரும்பக் குறியீடு:' , retCode )

தவிர :

#தவறான பிழை செய்தியை அச்சிடுக

அச்சு ( 'பிழை:' , sys . exc_info ( ) )

வெளியீடு:

முந்தைய ஸ்கிரிப்டை இயக்கிய பிறகு இதே போன்ற வெளியீடு தோன்றும்:

மேலே செல்

துணைச் செயலியின் வெளியீட்டை கோப்பிற்கு திருப்பி விடவும்

பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும், இது ஒரு உரை கோப்பில் துணை செயலாக்கத்தின் வெளியீட்டை எழுதுகிறது. துணை செயலாக்கத்தால் செயல்படுத்தப்படும் கட்டளை பயனரிடமிருந்து எடுக்கப்படுகிறது.

#இறக்குமதி தொகுதி

இறக்குமதி துணை செயல்முறை

#கோப்பின் பெயரை வரையறுக்கவும்

கோப்பு பெயர் = 'outfile.txt'

#பிங் கட்டளையை எடுங்கள்

cmd = உள்ளீடு ( 'பிங் கட்டளையை உள்ளிடவும்:' )

#இடத்தின் அடிப்படையில் எடுக்கப்பட்ட உள்ளீட்டைப் பிரிக்கவும்

args = cmd . பிளவு ( )

#கோப்பில் கட்டளை வெளியீட்டை எழுதவும்

உடன் திறந்த ( கோப்பு பெயர் , 'இன்' ) என பழைய தரவு:

செயல்முறை = துணை செயல்முறை . போபன் ( args , stdout = காலாவதியான தரவு )

#செயல்முறையை முடிக்கும் வரை காத்திருங்கள்

திரும்ப_குறியீடு = செயல்முறை. காத்திரு ( )

வெளியீடு:

பின்வரும் வெளியீட்டின் படி, “பிங் -சி 3 www.google.com ” கட்டளை பயனரிடமிருந்து எடுக்கப்பட்டது மற்றும் துணைச் செயலாக்கத்தால் எழுதப்பட்ட கோப்பின் உள்ளடக்கத்தைக் காட்ட “cat” கட்டளை பயன்படுத்தப்படுகிறது:

மேலே செல்

துணைச் செயலாக்கத்தைப் பயன்படுத்தி பல செயலாக்கம்.Popen

பின்வரும் ஸ்கிரிப்ட் மூலம் ஒரு பைதான் கோப்பை உருவாக்கவும், அங்கு துணைச் செயலாக்கத்தைப் பயன்படுத்தி மல்டிபிராசசிங்கின் பயன்பாடு காட்டப்படும். இங்கே, display_msg() என்ற பெயருடைய ஒரு செயல்பாடு மல்டிபிராசஸிங்கைப் பயன்படுத்தி பலமுறை அழைக்கப்படுகிறது.

#தேவையான தொகுதிகளை இறக்குமதி செய்யவும்

இறக்குமதி பல செயலாக்கம்

இறக்குமதி துணை செயல்முறை

#மல்டிபிராசசிங் மூலம் அழைக்கப்படும் செயல்பாட்டை வரையறுக்கவும்

def காட்சி_செய்தி ( n ) :

#கட்டளையை வடிவம்() செயல்பாடு மூலம் வரையறுக்கவும்

cmd = 'எக்கோ 'பைத்தான் புரோகிராமிங்'' . வடிவம் ( n )

#Popen() செயல்பாட்டைப் பயன்படுத்தி செயல்முறையைத் திறக்கவும்

செயல்முறை = துணை செயல்முறை . போபன் ( cmd , ஷெல் = உண்மை , stdout = துணை செயல்முறை . குழாய் )

#செயல்முறையுடன் தொடர்புகொள்வதன் மூலம் வெளியீடு மற்றும் பிழையை மீட்டெடுக்கவும்

stdout , பிழை = செயல்முறை. தொடர்பு ( )

#வெளியீட்டை அச்சிடவும்

அச்சு ( stdout. டிகோட் ( ) )

#மல்டிபிராசசிங்.பூலை உருவாக்குவதன் மூலம் செயல்பாட்டை 5 முறை அழைக்கவும்

உடன் பல செயலாக்கம். குளம் ( பல செயலாக்கம். cpu_count ( ) ) என mp:

# செயல்பாட்டை வரைபடமாக்குங்கள்

எம்பி வரைபடம் ( காட்சி_செய்தி , சரகம் ( 1 , 5 ) )

வெளியீடு:

முந்தைய ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்:

மேலே செல்

உள்ளீடு மற்றும் வெளியீடு ஸ்ட்ரீம்களைக் கையாளவும்

இந்த எடுத்துக்காட்டின் பைதான் ஸ்கிரிப்டை உருவாக்கும் முன், பின்வரும் உள்ளடக்கத்துடன் “test.txt” என்ற உரைக் கோப்பை உருவாக்கவும்.

test.txt

பெர்ல்

மலைப்பாம்பு

பாஷ்

php

'test.txt' கோப்பின் உள்ளடக்கத்தைப் படிக்க ஒரு துணைச் செயலையும், அந்த உரைக் கோப்பில் ஒரு குறிப்பிட்ட வார்த்தையைத் தேட மற்றொரு துணைச் செயலையும் பயன்படுத்தும் பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும். இங்கே, 'python' என்ற வார்த்தை இந்த வார்த்தையைக் கொண்டிருக்கும் 'test.txt கோப்பில்' தேடப்படுகிறது.

#இறக்குமதி தொகுதிகள்

இறக்குமதி துணை செயல்முறை

#உள்ளீட்டு ஸ்ட்ரீமிற்கான செயல்முறையை வரையறுக்கவும்

செயல்பாட்டில் = துணை செயல்முறை . போபன் ( [ 'பூனை' , 'test.txt' ] , stdout = துணை செயல்முறை . குழாய் , உரை = உண்மை > #வெளியீட்டு ஸ்ட்ரீமிற்கான செயல்முறையை வரையறுக்கவும்

வெளியே_செயல்முறை = துணை செயல்முறை . போபன் (

[ 'பிடி' , 'மலைப்பாம்பு' ] , stdin = செயல்பாட்டில். stdout ,

stdout = துணை செயல்முறை . குழாய் , உரை = உண்மை )

#உள்ளீடு மற்றும் வெளியீட்டு செயல்முறைகளின் வெளியீட்டை சேமிக்கவும்

வெளியீடு , _ = அவுட்_செயல்முறை. தொடர்பு ( )

#வெளியீட்டை அச்சிடவும்

அச்சு ( 'வெளியீடு:' , வெளியீடு )

வெளியீடு:

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்:

மேலே செல்

டைமரைப் பயன்படுத்தி துணைச் செயல்முறையைக் கட்டுப்படுத்தவும்

பின்வரும் ஸ்கிரிப்ட் மூலம் பைதான் கோப்பை உருவாக்கவும், அது ஒரு துணைச் செயலியைப் பயன்படுத்தி கட்டளையை இயக்க டைமரைப் பயன்படுத்துகிறது. இங்கே, டைமரைத் தொடங்க 'முயற்சி தவிர' பிளாக் பயன்படுத்தப்படுகிறது மற்றும் டைமரை ரத்து செய்ய 'இறுதியாக' பிளாக் பயன்படுத்தப்படுகிறது.

#துணை செயலாக்க தொகுதியை இறக்குமதி செய்யவும்

இறக்குமதி துணை செயல்முறை

#டைமர் தொகுதியை இறக்குமதி செய்யவும்

இருந்து த்ரெடிங் இறக்குமதி டைமர்

#கட்டளையை வரையறுக்கவும்

cmd = [ 'பிங்' , 'www.example.com' ]

#செயல்முறையைத் திறக்கவும்

= துணை செயல்முறை . போபன் (

cmd , stdout = துணை செயல்முறை . குழாய் , stderr = துணை செயல்முறை . குழாய் )

#டைமரை வரையறுக்கவும்

டைமர் = டைமர் ( 2 , லாம்ப்டா செயல்முறை: செயல்முறை. கொல்ல ( ) , [ ] )

முயற்சி :

#டைமரைத் தொடங்கவும்

டைமர். தொடங்கு ( )

#வெளியீட்டைப் படிக்கவும்

stdout , _ = ப. தொடர்பு ( )

#அச்சு வெளியீடு

அச்சு ( stdout. டிகோட் ( ) )

தவிர :

#தவறான பிழை செய்தியை அச்சிடுக

அச்சு ( 'பிழை:' , sys . exc_info ( ) )

இறுதியாக :

#டைமரை நிறுத்து

டைமர். ரத்து செய் ( )

வெளியீடு:

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்:

மேலே செல்

ஸ்ட்ரீமிங் உள்ளீட்டைப் படிக்கவும்

'while' லூப்பைப் பயன்படுத்தி துணைச் செயலாக்க வெளியீட்டின் உள்ளடக்கத்தைப் படிக்கும் பைதான் கோப்பை உருவாக்கி, உள்ளடக்கத்தை மாறியாகச் சேமிக்கவும். இந்த மாறியின் உள்ளடக்கம் பின்னர் அச்சிடப்படும். இங்கே, 'கர்ல்' கட்டளையானது துணைச் செயலாக்கத்தில் பயன்படுத்தப்படுகிறது www.google.com URL.

#இறக்குமதி தொகுதி

இறக்குமதி துணை செயல்முறை

#கட்டளையை வரையறுக்கவும்

cmd = [ 'சுருட்டை' , 'www.example.com' ]

= துணை செயல்முறை . போபன் ( cmd , stdout = துணை செயல்முறை . குழாய் ,

stderr = துணை செயல்முறை . குழாய் , உரை = உண்மை >

#அவுட்புட் மாறியை துவக்கவும்

வெளியீடு = ''

போது உண்மை :

#செயல்முறை வெளியீட்டை வரியாகப் படிக்கவும்

ln = ப. stdout . வாசிப்பு வரி ( )

#துணைச் செயலாக்கம் முடிந்ததும் லூப்பில் இருந்து நிறுத்தவும்

என்றால் இல்லை ln:

உடைக்க

வெளியீடு = வெளியீடு + ln

#வரியை அச்சிடுங்கள்

அச்சு ( வெளியீடு )

#செயல்முறையை முடித்த பிறகு திரும்பக் குறியீட்டைப் பெறவும்

திரும்ப_குறியீடு = ப. காத்திரு ( )

#திரும்பக் குறியீட்டை அச்சிடவும்

அச்சு ( 'திரும்பக் குறியீடு:' , திரும்ப_குறியீடு )

வெளியீடு:

மூன்று வெளியீடுகளின் கடைசி பகுதி பின்வரும் படத்தில் காட்டப்பட்டுள்ளது. துணைச் செயல்முறையை முடித்த பின் திரும்பக் குறியீடு 0:

மேலே செல்

முடிவுரை

Python subprocess இன் வெவ்வேறு பயன்பாடுகள்.Popen() இந்த டுடோரியலில் பல பைதான் ஸ்கிரிப்ட்களைப் பயன்படுத்தி காட்டப்பட்டுள்ளது, இது பைதான் பயனர்களுக்கு இந்தச் செயல்பாட்டின் அடிப்படைப் பயன்பாடுகளை அறிய உதவும்.