-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCreating_command_line_tooli_in_Python.py
More file actions
157 lines (125 loc) · 4.83 KB
/
Creating_command_line_tooli_in_Python.py
File metadata and controls
157 lines (125 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#Creating command line tool in Python
#Creating command line tools in python involve a few steps to ensure your script behaves
# correctly both when executed directly and when imported as module .
#Basic Structure
#1. Function definition and invocation:
#Define your main functionality within a function and call it only when the script is
# executed.
def say_it():
greeting = 'Hello'
target = 'Joe'
message = f'{greeting} {target}'
print(message)
if __name__ == '__main__':
say_it()
#2. Running the script
# You can run the script directly using Python
"""
O/P:
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ python say_it.py
Hello Joe
"""
#3.Making the script Executable:
#Add a shebang('#!/usr/bin/env python') to the top of your script and make it executable.
"""
#!/usr/bin/env python
def say_it():
greeting = 'Hello'
target = 'Joe'
message = f'{greeting} {target}'
print(message)
if __name__ == '__main__':
say_it()
"""
#change it execution permission with chmod
"""
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents$ cd Python\ for\ DevOps/
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ ls -la say_it.py
-rw-rw-r-- 1 gauravmtwt1 gauravmtwt1 173 Jul 22 07:00 say_it.py
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ chmod +x say_it.py
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ ls -la say_it.py
-rwxrwxr-x 1 gauravmtwt1 gauravmtwt1 173 Jul 22 07:00 say_it.py
"""
#Now you can run it without explicitly calling Python
"""
O/P: (.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents$ cd Python\ for\ DevOps/
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ ./say_it.py
Hello Joe
"""
#Accepting Command Line Argument
# To make your script more versatile, you can accept command-line arguments using the
# argparse module.
#1. Import 'argparse'
#!/usr/bin/env python
"""
def say_it():
greeting = 'Hello'
target = 'Joe'
message = f'{greeting} {target}'
print(message)
if __name__ == '__main__':
say_it()
"""
"""
#!/usr/bin/env python
import argparse
def say_it(greeting, target):
message = f'{greeting} {target}'
print(message)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description= 'Say hello to someone. ')
parser.add_argument('--greeting', default='Hello', help='The greeting word')
parser.add_argument('--target', default='Joe', help='The person to greet')
args = parser.parse_args()
say_it(args.greeting, args.target)
"""
"""
O/P: (.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ ./say_it.py --greeting Hi --target Alice
Hi Alice
"""
#More complex example
#!/usr/bin/env python
import argparse
def greet(greeting, target):
message = f'{greeting} {target}'
print(message)
def farewell(farewell_message , target):
message = f'{farewell_message}{target}'
print(message)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Greet or bid farewell to someone.')
subparsers = parser.add_subparsers(dest='command')
greet_parser = subparsers.add_parser('greet', help='Greet someone')
greet_parser.add_argument('--greeting',default='Hello', help='The greeting word')
greet_parser.add_argument('--target',default='Goodbye', help='The farewell message')
args = parser.parse_args()
if args.command == 'greet':
greet(args.greeting , args.target)
elif args.command == 'farewell':
farewell(args.farewell_message, args.target)
import argparse
def greet(greeting, target):
message = f'{greeting} {target}'
print(message)
def farewell(farewell_message , target):
message = f'{farewell_message} {target}'
print(message)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Greet or bid farewell to someone.')
subparsers = parser.add_subparsers(dest='command')
greet_parser = subparsers.add_parser('greet', help='Greet someone')
greet_parser.add_argument('--greeting',default='Hello', help='The greeting word')
greet_parser.add_argument('--target',default='Goodbye', help='The farewell message')
farewell_parser = subparsers.add_parser('farewell', help = 'Bid farewell to someone')
farewell_parser.add_argument('--farewell_message', default='Goodbye', help='The farewell message')
farewell_parser.add_argument('--target', default='Joe', help='The person to bid farewell to')
args = parser.parse_args()
if args.command == 'greet':
greet(args.greeting , args.target)
elif args.command == 'farewell':
farewell(args.farewell_message, args.target)
"""
O/P:
(.venv) gauravmtwt1@gauravmtwt1-IdeaPad-3-15ADA05:~/Documents/Python for DevOps$ ./say_it.py farewell --farewell_message Goodbye --target bob
Goodbye bob
"""