విషయాల అంశం:
- ఒక సాధారణ Linux కమాండ్ని అమలు చేయండి
- ఇన్పుట్ డేటాతో కమాండ్ని అమలు చేయండి
- పైథాన్ స్క్రిప్ట్ను అమలు చేయండి
- సబ్ప్రాసెస్ ఎర్రర్ని హ్యాండిల్ చేయండి
- సబ్ప్రాసెస్ కోడ్ను తిరిగి ఇవ్వండి.పోపెన్
- సబ్ప్రాసెస్ యొక్క అవుట్పుట్ను ఫైల్కి మళ్లించండి
- సబ్ప్రాసెస్ని ఉపయోగించి మల్టీప్రాసెసింగ్.Popen
- ఇన్పుట్ మరియు అవుట్పుట్ స్ట్రీమ్ను నిర్వహించండి లు
- గడువు మరియు ఆలస్యాన్ని నియంత్రించండి
- స్ట్రీమింగ్ ఇన్పుట్ను చదవండి
ఒక సాధారణ Linux కమాండ్ని అమలు చేయండి
ప్రస్తుత సిస్టమ్ తేదీ మరియు సమయాన్ని ప్రదర్శించడానికి “తేదీ” ఆదేశం ఉపయోగించబడుతుంది. కింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి, అది “తేదీ” ఆదేశాన్ని అమలు చేసే సబ్ప్రాసెస్ను సృష్టిస్తుంది మరియు ఈ కమాండ్ అవుట్పుట్ను ప్రింట్ చేయండి:
#మాడ్యూల్ను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
#ఉపప్రాసెస్ కోసం ఒక ఆదేశాన్ని నిర్వచించండి మరియు
#Popen() ఫంక్షన్ని ఉపయోగించడం ద్వారా ప్రక్రియను తెరవండి
అవుట్పుట్ = ఉప ప్రక్రియ . పోపెన్ ( [ 'తేదీ' ] , stdout = ఉప ప్రక్రియ . పైపు )
#ప్రాసెస్తో కమ్యూనికేట్ చేయడం ద్వారా అవుట్పుట్ మరియు ఎర్రర్ను తిరిగి పొందండి
stdout , stderr = అవుట్పుట్. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( stdout. డీకోడ్ ( ) )
అవుట్పుట్:
మునుపటి స్క్రిప్ట్ని అమలు చేసిన తర్వాత క్రింది అవుట్పుట్ కనిపిస్తుంది:
ఇన్పుట్ డేటాతో కమాండ్ని అమలు చేయండి
ఈ కమాండ్తో అందించబడిన స్ట్రింగ్ విలువ యొక్క మొత్తం అక్షరాల సంఖ్యను లెక్కించడానికి “-c” ఎంపికతో “wc” కమాండ్ ఉపయోగించబడుతుంది. “wc –c” ఆదేశాలను అమలు చేయడానికి Popen() ఫంక్షన్తో సబ్ప్రాసెస్ను సృష్టించే క్రింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి. స్క్రిప్ట్ను అమలు చేసిన తర్వాత స్ట్రింగ్ విలువ టెర్మినల్ నుండి తీసుకోబడుతుంది మరియు ఇన్పుట్ స్ట్రింగ్ యొక్క మొత్తం అక్షరాలు అవుట్పుట్లో ముద్రించబడతాయి.
#మాడ్యూల్ను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
#ఉపప్రాసెస్ కోసం ఆదేశాన్ని నిర్వచించండి మరియు
#Popen() ఫంక్షన్ని ఉపయోగించడం ద్వారా ప్రక్రియను తెరవండి
అవుట్పుట్ = ఉప ప్రక్రియ . పోపెన్ ( [ 'wc' , '-సి' ] , stdout = ఉప ప్రక్రియ . పైపు )
#ప్రాసెస్తో కమ్యూనికేట్ చేయడం ద్వారా అవుట్పుట్ మరియు ఎర్రర్ను తిరిగి పొందండి
stdout , stderr = అవుట్పుట్. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( stdout. డీకోడ్ ( ) )
అవుట్పుట్:
“పైథాన్ సబ్ప్రాసెస్ ఉదాహరణలు” ఇన్పుట్ విలువ కోసం క్రింది అవుట్పుట్ కనిపిస్తుంది:
పైథాన్ స్క్రిప్ట్ను అమలు చేయండి
కింది స్క్రిప్ట్తో “sum.py” పేరుతో పైథాన్ ఫైల్ను సృష్టించండి, అది రెండు సంఖ్యల మొత్తాన్ని గణిస్తుంది మరియు ఈ సంఖ్యలు కమాండ్-లైన్ ఆర్గ్యుమెంట్లుగా అందించబడతాయి:
sum.py
#అవసరమైన మాడ్యూల్ను దిగుమతి చేయండిదిగుమతి sys
#మొత్తం వాదనలను లెక్కించండి
n = మాత్రమే ( sys . argv )
#మొదటి రెండు ఆర్గ్యుమెంట్ విలువలను జోడించండి
మొత్తం = int ( sys . argv [ 1 ] ) + int ( sys . argv [ 2 ] )
#అదనపు ఫలితాన్ని ముద్రించండి
ముద్రణ ( 'మొత్తం' + sys . argv [ 1 ] + 'మరియు' + sys . argv [ 2 ] + 'ఉంది' , మొత్తం )
పైథాన్ను సృష్టించండి ఫైల్ తో పైథాన్ను అమలు చేసే క్రింది స్క్రిప్ట్ ఫైల్ అనే మొత్తం . py తో a సృష్టించడం ద్వారా రెండు వాదనలు ఉప ప్రక్రియ .
#మాడ్యూల్ను దిగుమతి చేయండి
దిగుమతి ఉప ప్రక్రియ
#ఉపప్రాసెస్లో పైథాన్ స్క్రిప్ట్ని అమలు చేయండి మరియు
#Popen() ఫంక్షన్ని ఉపయోగించి ప్రక్రియను తెరవండి
అవుట్పుట్ = ఉప ప్రక్రియ . పోపెన్ ( [ 'పైథాన్ 3' , 'sum.py' , '25' , '55' ] , stdout = ఉప ప్రక్రియ . పైపు ) #ప్రాసెస్తో కమ్యూనికేట్ చేయడం ద్వారా అవుట్పుట్ మరియు ఎర్రర్ను తిరిగి పొందండి
stdout , stderr = అవుట్పుట్. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( stdout. డీకోడ్ ( ) )
అవుట్పుట్:
మునుపటి స్క్రిప్ట్ని అమలు చేసిన తర్వాత క్రింది అవుట్పుట్ కనిపిస్తుంది:
`
సబ్ప్రాసెస్ ఎర్రర్ని హ్యాండిల్ చేయండి
క్రింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి, అది 'ప్రయత్నించండి-తప్ప' బ్లాక్ని ఉపయోగించి సబ్ప్రాసెస్ యొక్క లోపాలను నిర్వహిస్తుంది. వినియోగదారు నుండి ఒక ఆదేశం తీసుకోబడుతుంది మరియు అది ఉపప్రాసెస్ ద్వారా అమలు చేయబడుతుంది. వినియోగదారు నుండి ఏదైనా చెల్లని ఆదేశం తీసుకోబడినట్లయితే దోష సందేశం ప్రదర్శించబడుతుంది.
#మాడ్యూల్లను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
దిగుమతి sys
#యూజర్ నుండి కమాండ్ తీసుకోండి
ఆదేశం = ఇన్పుట్ ( 'చెల్లుబాటు అయ్యే ఆదేశాన్ని నమోదు చేయండి:' )
ప్రయత్నించండి :
#Popen() ఫంక్షన్ని ఉపయోగించడం ద్వారా ప్రక్రియను తెరవండి
అవుట్పుట్ = ఉప ప్రక్రియ . పోపెన్ ( [ ఆదేశం ] , stdout = ఉప ప్రక్రియ . పైపు )
#ప్రాసెస్తో కమ్యూనికేట్ చేయడం ద్వారా అవుట్పుట్ మరియు ఎర్రర్ను తిరిగి పొందండి
stdout , stderr = అవుట్పుట్. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( stdout. డీకోడ్ ( ) )
తప్ప :
ముద్రణ ( 'లోపం:' , sys . exc_info ( ) )
అవుట్పుట్:
చెల్లుబాటు అయ్యే కమాండ్ అయిన “pwd” కమాండ్ ఇన్పుట్గా తీసుకుంటే క్రింది అవుట్పుట్ కనిపిస్తుంది:
చెల్లుబాటు అయ్యే కమాండ్ అయిన “usr” కమాండ్ని ఇన్పుట్గా తీసుకుంటే క్రింది అవుట్పుట్ కనిపిస్తుంది:
సబ్ప్రాసెస్ కోడ్ను తిరిగి ఇవ్వండి.పోపెన్
ప్రస్తుత స్థానం నుండి అన్ని పైథాన్ ఫైల్ల జాబితాను పొందడానికి సబ్ప్రాసెస్ ద్వారా “ls” ఆదేశాన్ని అమలు చేసే క్రింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి. స్క్రిప్ట్ సబ్ప్రాసెస్ను పూర్తి చేయడానికి వేచి ఉంది మరియు రిటర్న్ కోడ్ను ప్రింట్ చేస్తుంది.
#మాడ్యూల్లను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
దిగుమతి sys
#కమాండ్ సెట్ చేయండి
ఆదేశం = [ 'ls' , '-ఎల్' , '*.py' ]
ప్రయత్నించండి :
#Popen() ఫంక్షన్ని ఉపయోగించడం ద్వారా ప్రక్రియను తెరవండి
అవుట్పుట్ = ఉప ప్రక్రియ . పోపెన్ ( ఆదేశం , stdout = ఉప ప్రక్రియ . పైపు ,
stderr = ఉప ప్రక్రియ . పైపు , వచనం = నిజమే )
# ప్రక్రియను పూర్తి చేయడానికి వేచి ఉండండి
retCode = అవుట్పుట్. వేచి ఉండండి ( )
#రిటర్న్ కోడ్ను ప్రింట్ చేయండి
ముద్రణ ( 'రిటర్న్ కోడ్:' , retCode )
తప్ప :
#తప్పు కోసం దోష సందేశాన్ని ముద్రించండి
ముద్రణ ( 'లోపం:' , sys . exc_info ( ) )
అవుట్పుట్:
మునుపటి స్క్రిప్ట్ని అమలు చేసిన తర్వాత ఇదే విధమైన అవుట్పుట్ కనిపిస్తుంది:
సబ్ప్రాసెస్ యొక్క అవుట్పుట్ను ఫైల్కి మళ్లించండి
టెక్స్ట్ ఫైల్లో సబ్ప్రాసెస్ యొక్క అవుట్పుట్ను వ్రాసే క్రింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి. సబ్ప్రాసెస్ ద్వారా అమలు చేయబడిన ఆదేశం వినియోగదారు నుండి తీసుకోబడుతుంది.
#దిగుమతి మాడ్యూల్దిగుమతి ఉప ప్రక్రియ
# ఫైల్ పేరును నిర్వచించండి
ఫైల్ పేరు = 'outfile.txt'
#పింగ్ కమాండ్ తీసుకోండి
cmd = ఇన్పుట్ ( 'పింగ్ కమాండ్ను నమోదు చేయండి:' )
#స్థలం ఆధారంగా తీసుకున్న ఇన్పుట్ను విభజించండి
ఆర్గ్స్ = cmd . విడిపోయింది ( )
#ఫైల్లో కమాండ్ అవుట్పుట్ను వ్రాయండి
తో తెరవండి ( ఫైల్ పేరు , 'లో' ) వంటి పాత డేటా:
ప్రక్రియ = ఉప ప్రక్రియ . పోపెన్ ( ఆర్గ్స్ , stdout = పాత డేటా )
# ప్రక్రియను పూర్తి చేయడానికి వేచి ఉండండి
రిటర్న్_కోడ్ = ప్రక్రియ. వేచి ఉండండి ( )
అవుట్పుట్:
కింది అవుట్పుట్ ప్రకారం, “పింగ్ -సి 3 www.google.com ” ఆదేశం వినియోగదారు నుండి తీసుకోబడింది మరియు సబ్ప్రాసెస్ ద్వారా వ్రాయబడిన ఫైల్ యొక్క కంటెంట్ను ప్రదర్శించడానికి “cat” ఆదేశం ఉపయోగించబడుతుంది:
సబ్ప్రాసెస్ని ఉపయోగించి మల్టీప్రాసెసింగ్.Popen
కింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి, ఇక్కడ సబ్ప్రాసెసింగ్ ఉపయోగించి మల్టీప్రాసెసింగ్ ఉపయోగం చూపబడుతుంది. ఇక్కడ, display_msg() అనే ఫంక్షన్ మల్టీప్రాసెసింగ్ని ఉపయోగించి అనేక సార్లు అంటారు.
#అవసరమైన మాడ్యూళ్లను దిగుమతి చేయండిదిగుమతి బహుళ ప్రాసెసింగ్
దిగుమతి ఉప ప్రక్రియ
#మల్టీప్రాసెసింగ్ ద్వారా పిలవబడే ఫంక్షన్ను నిర్వచించండి
డెఫ్ display_msg ( n ) :
#ఫార్మాట్() ఫంక్షన్తో ఆదేశాన్ని నిర్వచించండి
cmd = 'ఎకో 'పైథాన్ ప్రోగ్రామింగ్'' . ఫార్మాట్ ( n )
#Popen() ఫంక్షన్ని ఉపయోగించడం ద్వారా ప్రక్రియను తెరవండి
ప్రక్రియ = ఉప ప్రక్రియ . పోపెన్ ( cmd , షెల్ = నిజమే , stdout = ఉప ప్రక్రియ . పైపు )
#ప్రాసెస్తో కమ్యూనికేట్ చేయడం ద్వారా అవుట్పుట్ మరియు ఎర్రర్ను తిరిగి పొందండి
stdout , లోపం = ప్రక్రియ. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( stdout. డీకోడ్ ( ) )
#మల్టీప్రాసెసింగ్.పూల్ని సృష్టించడం ద్వారా ఫంక్షన్కు 5 సార్లు కాల్ చేయండి
తో బహుళ ప్రాసెసింగ్. కొలను ( బహుళ ప్రాసెసింగ్. cpu_count ( ) ) వంటి mp:
#ఫంక్షన్ను మ్యాప్ చేయండి
mp. పటం ( display_msg , పరిధి ( 1 , 5 ) )
అవుట్పుట్:
మునుపటి స్క్రిప్ట్ని అమలు చేసిన తర్వాత క్రింది అవుట్పుట్ కనిపిస్తుంది:
ఇన్పుట్ మరియు అవుట్పుట్ స్ట్రీమ్లను నిర్వహించండి
ఈ ఉదాహరణ యొక్క పైథాన్ స్క్రిప్ట్ను సృష్టించే ముందు కింది కంటెంట్తో “test.txt” పేరుతో ఒక టెక్స్ట్ ఫైల్ను సృష్టించండి.
test.txt
PERL
కొండచిలువ
బాష్
php
'test.txt' ఫైల్లోని కంటెంట్ను చదవడానికి ఒక సబ్ప్రాసెస్ని మరియు ఆ టెక్స్ట్ ఫైల్లో నిర్దిష్ట పదం కోసం వెతకడానికి మరొక సబ్ప్రాసెస్ని ఉపయోగించే క్రింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి. ఇక్కడ, 'python' అనే పదం ఈ పదాన్ని కలిగి ఉన్న 'test.txt ఫైల్'లో శోధించబడింది.
#మాడ్యూళ్లను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
#ఇన్పుట్ స్ట్రీమ్ కోసం ప్రక్రియను నిర్వచించండి
ప్రక్రియ లో = ఉప ప్రక్రియ . పోపెన్ ( [ 'పిల్లి' , 'test.txt' ] , stdout = ఉప ప్రక్రియ . పైపు , వచనం = నిజమే > #అవుట్పుట్ స్ట్రీమ్ కోసం ప్రక్రియను నిర్వచించండి
అవుట్_ప్రాసెస్ = ఉప ప్రక్రియ . పోపెన్ (
[ 'పట్టు' , 'కొండచిలువ' ] , stdin = ప్రక్రియ లో. stdout ,
stdout = ఉప ప్రక్రియ . పైపు , వచనం = నిజమే )
#ఇన్పుట్ మరియు అవుట్పుట్ ప్రక్రియల అవుట్పుట్ను నిల్వ చేయండి
అవుట్పుట్ , _ = అవుట్_ప్రాసెస్. సంభాషించండి ( )
#అవుట్పుట్ను ప్రింట్ చేయండి
ముద్రణ ( 'అవుట్పుట్:' , అవుట్పుట్ )
అవుట్పుట్:
స్క్రిప్ట్ను అమలు చేసిన తర్వాత క్రింది అవుట్పుట్ కనిపిస్తుంది:
టైమర్ని ఉపయోగించి సబ్ప్రాసెస్ని నియంత్రించండి
సబ్ప్రాసెస్ని ఉపయోగించి ఆదేశాన్ని అమలు చేయడానికి టైమర్ని ఉపయోగించే కింది స్క్రిప్ట్తో పైథాన్ ఫైల్ను సృష్టించండి. ఇక్కడ, టైమర్ను ప్రారంభించడానికి “ప్రయత్నించండి-తప్ప” బ్లాక్ ఉపయోగించబడుతుంది మరియు టైమర్ను రద్దు చేయడానికి “చివరిగా” బ్లాక్ ఉపయోగించబడుతుంది.
#ఉపప్రాసెస్ మాడ్యూల్ను దిగుమతి చేయండిదిగుమతి ఉప ప్రక్రియ
#టైమర్ మాడ్యూల్ను దిగుమతి చేయండి
నుండి థ్రెడింగ్ దిగుమతి టైమర్
# ఆదేశాన్ని నిర్వచించండి
cmd = [ 'పింగ్' , 'www.example.com' ]
# ప్రక్రియను తెరవండి
p = ఉప ప్రక్రియ . పోపెన్ (
cmd , stdout = ఉప ప్రక్రియ . పైపు , stderr = ఉప ప్రక్రియ . పైపు )
#టైమర్ను నిర్వచించండి
టైమర్ = టైమర్ ( 2 , లాంబ్డా ప్రక్రియ: ప్రక్రియ. చంపేస్తాయి ( ) , [ p ] )
ప్రయత్నించండి :
#టైమర్ను ప్రారంభించండి
టైమర్. ప్రారంభించండి ( )
#రీడ్ అవుట్పుట్
stdout , _ = p. సంభాషించండి ( )
#ప్రింట్ అవుట్పుట్
ముద్రణ ( stdout. డీకోడ్ ( ) )
తప్ప :
#తప్పు కోసం దోష సందేశాన్ని ముద్రించండి
ముద్రణ ( 'లోపం:' , sys . exc_info ( ) )
చివరకు :
#టైమర్ను ఆపు
టైమర్. రద్దు చేయండి ( )
అవుట్పుట్:
స్క్రిప్ట్ను అమలు చేసిన తర్వాత క్రింది అవుట్పుట్ కనిపిస్తుంది:
స్ట్రీమింగ్ ఇన్పుట్ చదవండి
సబ్ప్రాసెస్ అవుట్పుట్ యొక్క కంటెంట్ను 'వేళ' లూప్ని ఉపయోగించి చదివే పైథాన్ ఫైల్ను సృష్టించండి మరియు కంటెంట్ను వేరియబుల్లో నిల్వ చేయండి. ఈ వేరియబుల్ యొక్క కంటెంట్ తర్వాత ముద్రించబడుతుంది. ఇక్కడ, 'కర్ల్' కమాండ్ సబ్ప్రాసెస్లో ఉపయోగించబడుతుంది www.google.com URL.
#దిగుమతి మాడ్యూల్దిగుమతి ఉప ప్రక్రియ
# ఆదేశాన్ని నిర్వచించండి
cmd = [ 'కర్ల్' , 'www.example.com' ]
p = ఉప ప్రక్రియ . పోపెన్ ( cmd , stdout = ఉప ప్రక్రియ . పైపు ,
stderr = ఉప ప్రక్రియ . పైపు , వచనం = నిజమే >
#అవుట్పుట్ వేరియబుల్ని ప్రారంభించండి
అవుట్పుట్ = ''
అయితే నిజమే :
#లైన్ ద్వారా ప్రాసెస్ అవుట్పుట్ను చదవండి
ln = p. stdout . రీడ్లైన్ ( )
#ఉపప్రాసెస్ పూర్తయినప్పుడు లూప్ నుండి ముగించండి
ఉంటే కాదు ln:
బ్రేక్
అవుట్పుట్ = అవుట్పుట్ + ln
# లైన్ను ప్రింట్ చేయండి
ముద్రణ ( అవుట్పుట్ )
#ప్రాసెస్ పూర్తయిన తర్వాత రిటర్న్ కోడ్ను పొందండి
రిటర్న్_కోడ్ = p. వేచి ఉండండి ( )
#రిటర్న్ కోడ్ను ప్రింట్ చేయండి
ముద్రణ ( 'రిటర్న్ కోడ్:' , రిటర్న్_కోడ్ )
అవుట్పుట్:
మూడు అవుట్పుట్ల చివరి భాగం క్రింది చిత్రంలో చూపబడింది. సబ్ప్రాసెస్ని పూర్తి చేసిన తర్వాత రిటర్న్ కోడ్ 0:
ముగింపు
పైథాన్ సబ్ప్రాసెస్ యొక్క వివిధ ఉపయోగాలు.Popen() ఈ ట్యుటోరియల్లో బహుళ పైథాన్ స్క్రిప్ట్లను ఉపయోగించి చూపబడ్డాయి, ఇది పైథాన్ వినియోగదారులకు ఈ ఫంక్షన్ యొక్క ప్రాథమిక ఉపయోగాలను తెలుసుకోవడానికి సహాయపడుతుంది.