1558776576
If you plan a data science or a machine learning project, then it is not uncommon to get started developing it in a Jupyter Notebook. It provides interactivity to your computing tools, lets you run your modules quickly and so on. There are many pointers to choose Jupyter Notebooks as your primary weapon of choice, especially for doing data science or machine learning projects. However, this tutorial does not aim to shed light on that part.
Consider you need to run a Python script as a batch job for the purpose of data ingestion in your data science project. Or you need to run a Python script to deploy a machine learning model to a remote server. In cases like these, just executing python your_script.py
might not be sufficient. You may need to pass more options or arguments along with python your_script.py
. You may already be familiar with the usage of additional arguments while running commands (like ps
, ls
, etc.) on a Linux terminal.
In this tutorial, you are going to learn about how to parse additional arguments, options from the command line that are passed along with a Python script. Here is the summary of the contents for today's tutorial:
. Argument parsing in Python
Using sys.argv
Using getopt
Using argparse
Note that this tutorial assumes basic familiarity with Python.
If you are a Linux user, you might already be knowing this, I bet. In order to get a summary of the files and folders present in a particular directory, the command ls
is often used. A typical output of running the ls
command looks like -
However, you can supply many options to the ls
command, -l
, for example. Let's take a look at what that output looks like -
By passing the -l
option, you got more information. Now, there is a slight difference between an option and an argument in this context. To remove a file or a folder from your current working directory, rm
command is often used. Suppose, you have a text file named demo.txt
and you ran rm demo.txt
in order to remove the text file. In this case, demo.txt
is the argument which you applied to the rm
command. If you do not pass any argument to the rm
command, you will get an error like so -
So, what is the difference between an option and an argument? It is now pretty obvious. Options are optional to pass whereas arguments are (often) necessary to pass. It is not essential to pass anything to the ls
command for it to produce any output.
Now, when you hit ls -l
or rm demo.txt
, the operating system parses it in a certain way under the hood. This mechanism is generally specified by the developers of the operating system, and it is known as parsing.
If you are interested in knowing more Linux commands and the different options and arguments they support, reading the book Unix Concepts and Applications is highly recommended.
So, that was a basic introduction to argument parsing. Almost all the programming languages come with support for argument parsing. Python is no exception to this. There are three very prevalent ways in which you can do argument parsing in Python -
You will now take each of the above options one by one and see how to use them for parsing arguments (and options). Let's go chronologically.
Let's start simple. In this first example, you will create a Python file named demo1.py
. Your program will accept an arbitrary number of arguments passed from the command-line (or terminal) while getting executed. The program will print out the arguments that were passed and the total number of arguments.
For example, if you execute python demo1.py abc 123
, then the program would yield -
Number of arguments: 3 Argument(s) passed: ['demo1.py', 'abc', '123']
Notice that the first argument is always the name of the Python file. But the code can be modified to not include it.
Now coming to the code -
import sysprint(‘Number of arguments: {}’.format(len(sys.argv)))
print(‘Argument(s) passed: {}’.format(str(sys.argv)))
You first imported the Python module sys
, which comes with a standard installation of Python. You then employed the argv
submodule which returns the list of the arguments passed to a Python script where argv[0]
contains the name of the Python script. If you run sys.argv
in a code cell like the following, you get the list of the configuration files responsible for making the IPython kernel function properly. It is better to not mess with them.
sys.argv
[‘/home/nbuser/anaconda3_501/lib/python3.6/site-packages/ipykernel/main.py’,
‘-f’,
‘/home/nbuser/.local/share/jupyter/runtime/kernel-dabba4f7-e3e0-4c39-99d2-261ba835c53f.json’]
Let’s now see how to use the getopt
module for parsing arguments (and options).
In comparison to sys.argv
, the getopt
module offers much more flexibility. Let’s design a sample scenario first and write the code accordingly.
Say, you have a released a Python script which you have not documented yet. But you want to be able to provide the users with meaningful feedback when they execute that script in a way it is not meant to be. Your Python script does the simple task of adding two numbers and provides an output. The only constraint is that the user needs to pass the inputs in the form of command-line arguments along with the Python script.
Talking a bit more practically, the script ideally should be executed like -
python add_numbers.py -a 3 -b 8
The output should be 11. Here, -a
and -b
are the options, and 3, 8 are the arguments that you provide to the script. The options not only enhance the readability part but also helps to decide the evaluation flow (consider if you are dividing instead of doing addition). Let’s start looking at the code for this first.
import getopt
import sysGet the arguments from the command-line except the filename
argv = sys.argv[1:]
sum = 0try:
# Define the getopt parameters
opts, args = getopt.getopt(argv, ‘a:b:’, [‘foperand’, ‘soperand’])
# Check if the options’ length is 2 (can be enhanced)
if len(opts) == 0 and len(opts) > 2:
print (‘usage: add.py -a <first_operand> -b <second_operand>’)
else:
# Iterate the options and get the corresponding values
for opt, arg in opts:
sum += int(arg)
print(‘Sum is {}’.format(sum))except getopt.GetoptError:
# Print something useful
print (‘usage: add.py -a <first_operand> -b <second_operand>’)
sys.exit(2)
The idea is to first get all the arguments using sys.argv
and then process it accordingly. Let’s now come to the most important line of code - opts, args = getopt.getopt(argv, ‘a:b:’, [‘foperand’, ‘soperand’])
The signature of the getopt()
method looks like:
getopt.getopt(args, shortopts, longopts=[])
args
is the list of arguments taken from the command-line.shortopts
is where you specify the option letters. If you supply a:
, then it means that your script should be supplied with the option a
followed by a value as its argument. Technically, you can use any number of options here. When you pass these options from the command-line, they must be prepended with ‘-’.longopts
is where you can specify the extended versions of the shortopts
. They must be prepended with ‘–’.You defined the shortopts
to be a:b:
which means your Python script would take two options as letters - ‘a’ and ‘b’. By specifying ‘:’ you are explicitly telling that these options will be followed by arguments.
You defined the longopts
to be [‘foperand’, ‘soperand’]
which is a way of telling the code to accept f_operand
and s_operand
in place of a
and b
as the options. But these should always follow –
.
The getopt
module provides you with a handy Exception class GetoptError
also for defining useful messages, so a to guide the user on how to use your Python script. This is why you wrapped the functional part of your script in a try
block and defined the except
block accordingly.
Here is how you can run the Python script:
Note that the above script was not defined to handle the longopts
. This is something you can try as an exercise.
Let’s now see how to use argparse
for argument parsing.
From the above two options, it is quite viable that they are not very readable. Once you see argparse
in action, you will also agree that the above two options lack on the flexibility part as well. To understand the usage of argparse
, let’s start with a code snippet which implements the scenario you saw in the above section.
import argparseConstruct the argument parser
ap = argparse.ArgumentParser()
Add the arguments to the parser
ap.add_argument(“-a”, “–foperand”, required=True,
help=“first operand”)
ap.add_argument(“-b”, “–soperand”, required=True,
help=“second operand”)
args = vars(ap.parse_args())Calculate the sum
print(“Sum is {}”.format(int(args[‘foperand’]) + int(args[‘soperand’])))
First things first, argparse
like the other two modules discussed above, comes with the standard installation of Python. You start by instantiating the argparse
object. And the rest of the things become so simpler to write. Let’s take the following line of code for example -
ap.add_argument(“-a”, “–foperand”, required=True, help=“first operand”)
Here you added the argument that you expect to be supplied with the Python script when it is run. You provided the letter version of the argument along with its extended one. By specifying required=True
you are explicitly asking the user to supply that particular argument. Finally, you appended a meaningful description of the argument which will be shown to the user in case he does not execute the script in the right manner.
The argument definition part is the same for the second argument, as well. You access the given arguments by specifying their respective indices.
The above code-snippet clearly shows how easy and flexible it is to define command-line argument parsing tasks with argparse
. Here is how you can play with the above Python script:
Notice how much easier the process became with argparse
.
Thank you for reading today’s tutorial until the end. Now, you are equipped with the native Python modules that are able to parse arguments supplied from the command-line along with your Python script. As an exercise, you can customize your machine learning and data science projects accordingly to facilitate argument parsing and turn them into useful script utilities. Not just machine learning or data science, but anywhere you feel it is relevant enough.
=======================================================================
Thanks for reading :heart: If you liked this post, share it with all of your programming buddies! Follow me on Facebook | Twitter
☞ Complete Python Bootcamp: Go from zero to hero in Python 3
☞ Python for Time Series Data Analysis
☞ Python Programming For Beginners From Scratch
☞ Python Network Programming | Network Apps & Hacking Tools
☞ Intro To SQLite Databases for Python Programming
☞ Ethical Hacking With Python, JavaScript and Kali Linux
☞ Beginner’s guide on Python: Learn python from scratch! (New)
☞ Python for Beginners: Complete Python Programming
#python
1626775355
No programming language is pretty much as diverse as Python. It enables building cutting edge applications effortlessly. Developers are as yet investigating the full capability of end-to-end Python development services in various areas.
By areas, we mean FinTech, HealthTech, InsureTech, Cybersecurity, and that's just the beginning. These are New Economy areas, and Python has the ability to serve every one of them. The vast majority of them require massive computational abilities. Python's code is dynamic and powerful - equipped for taking care of the heavy traffic and substantial algorithmic capacities.
Programming advancement is multidimensional today. Endeavor programming requires an intelligent application with AI and ML capacities. Shopper based applications require information examination to convey a superior client experience. Netflix, Trello, and Amazon are genuine instances of such applications. Python assists with building them effortlessly.
Python can do such numerous things that developers can't discover enough reasons to admire it. Python application development isn't restricted to web and enterprise applications. It is exceptionally adaptable and superb for a wide range of uses.
Robust frameworks
Python is known for its tools and frameworks. There's a structure for everything. Django is helpful for building web applications, venture applications, logical applications, and mathematical processing. Flask is another web improvement framework with no conditions.
Web2Py, CherryPy, and Falcon offer incredible capabilities to customize Python development services. A large portion of them are open-source frameworks that allow quick turn of events.
Simple to read and compose
Python has an improved sentence structure - one that is like the English language. New engineers for Python can undoubtedly understand where they stand in the development process. The simplicity of composing allows quick application building.
The motivation behind building Python, as said by its maker Guido Van Rossum, was to empower even beginner engineers to comprehend the programming language. The simple coding likewise permits developers to roll out speedy improvements without getting confused by pointless subtleties.
Utilized by the best
Alright - Python isn't simply one more programming language. It should have something, which is the reason the business giants use it. Furthermore, that too for different purposes. Developers at Google use Python to assemble framework organization systems, parallel information pusher, code audit, testing and QA, and substantially more. Netflix utilizes Python web development services for its recommendation algorithm and media player.
Massive community support
Python has a steadily developing community that offers enormous help. From amateurs to specialists, there's everybody. There are a lot of instructional exercises, documentation, and guides accessible for Python web development solutions.
Today, numerous universities start with Python, adding to the quantity of individuals in the community. Frequently, Python designers team up on various tasks and help each other with algorithmic, utilitarian, and application critical thinking.
Progressive applications
Python is the greatest supporter of data science, Machine Learning, and Artificial Intelligence at any enterprise software development company. Its utilization cases in cutting edge applications are the most compelling motivation for its prosperity. Python is the second most well known tool after R for data analytics.
The simplicity of getting sorted out, overseeing, and visualizing information through unique libraries makes it ideal for data based applications. TensorFlow for neural networks and OpenCV for computer vision are two of Python's most well known use cases for Machine learning applications.
Thinking about the advances in programming and innovation, Python is a YES for an assorted scope of utilizations. Game development, web application development services, GUI advancement, ML and AI improvement, Enterprise and customer applications - every one of them uses Python to its full potential.
The disadvantages of Python web improvement arrangements are regularly disregarded by developers and organizations because of the advantages it gives. They focus on quality over speed and performance over blunders. That is the reason it's a good idea to utilize Python for building the applications of the future.
#python development services #python development company #python app development #python development #python in web development #python software development
1602968400
Python is awesome, it’s one of the easiest languages with simple and intuitive syntax but wait, have you ever thought that there might ways to write your python code simpler?
In this tutorial, you’re going to learn a variety of Python tricks that you can use to write your Python code in a more readable and efficient way like a pro.
Swapping value in Python
Instead of creating a temporary variable to hold the value of the one while swapping, you can do this instead
>>> FirstName = "kalebu"
>>> LastName = "Jordan"
>>> FirstName, LastName = LastName, FirstName
>>> print(FirstName, LastName)
('Jordan', 'kalebu')
#python #python-programming #python3 #python-tutorials #learn-python #python-tips #python-skills #python-development
1602666000
Today you’re going to learn how to use Python programming in a way that can ultimately save a lot of space on your drive by removing all the duplicates.
In many situations you may find yourself having duplicates files on your disk and but when it comes to tracking and checking them manually it can tedious.
Heres a solution
Instead of tracking throughout your disk to see if there is a duplicate, you can automate the process using coding, by writing a program to recursively track through the disk and remove all the found duplicates and that’s what this article is about.
But How do we do it?
If we were to read the whole file and then compare it to the rest of the files recursively through the given directory it will take a very long time, then how do we do it?
The answer is hashing, with hashing can generate a given string of letters and numbers which act as the identity of a given file and if we find any other file with the same identity we gonna delete it.
There’s a variety of hashing algorithms out there such as
#python-programming #python-tutorials #learn-python #python-project #python3 #python #python-skills #python-tips
1597751700
Magic Methods are the special methods which gives us the ability to access built in syntactical features such as ‘<’, ‘>’, ‘==’, ‘+’ etc…
You must have worked with such methods without knowing them to be as magic methods. Magic methods can be identified with their names which start with __ and ends with __ like init, call, str etc. These methods are also called Dunder Methods, because of their name starting and ending with Double Underscore (Dunder).
Now there are a number of such special methods, which you might have come across too, in Python. We will just be taking an example of a few of them to understand how they work and how we can use them.
class AnyClass:
def __init__():
print("Init called on its own")
obj = AnyClass()
The first example is _init, _and as the name suggests, it is used for initializing objects. Init method is called on its own, ie. whenever an object is created for the class, the init method is called on its own.
The output of the above code will be given below. Note how we did not call the init method and it got invoked as we created an object for class AnyClass.
Init called on its own
Let’s move to some other example, add gives us the ability to access the built in syntax feature of the character +. Let’s see how,
class AnyClass:
def __init__(self, var):
self.some_var = var
def __add__(self, other_obj):
print("Calling the add method")
return self.some_var + other_obj.some_var
obj1 = AnyClass(5)
obj2 = AnyClass(6)
obj1 + obj2
#python3 #python #python-programming #python-web-development #python-tutorials #python-top-story #python-tips #learn-python
1593156510
At the end of 2019, Python is one of the fastest-growing programming languages. More than 10% of developers have opted for Python development.
In the programming world, Data types play an important role. Each Variable is stored in different data types and responsible for various functions. Python had two different objects, and They are mutable and immutable objects.
Table of Contents hide
III Built-in data types in Python
The Size and declared value and its sequence of the object can able to be modified called mutable objects.
Mutable Data Types are list, dict, set, byte array
The Size and declared value and its sequence of the object can able to be modified.
Immutable data types are int, float, complex, String, tuples, bytes, and frozen sets.
id() and type() is used to know the Identity and data type of the object
a**=25+**85j
type**(a)**
output**:<class’complex’>**
b**={1:10,2:“Pinky”****}**
id**(b)**
output**:**238989244168
a**=str(“Hello python world”)****#str**
b**=int(18)****#int**
c**=float(20482.5)****#float**
d**=complex(5+85j)****#complex**
e**=list((“python”,“fast”,“growing”,“in”,2018))****#list**
f**=tuple((“python”,“easy”,“learning”))****#tuple**
g**=range(10)****#range**
h**=dict(name=“Vidu”,age=36)****#dict**
i**=set((“python”,“fast”,“growing”,“in”,2018))****#set**
j**=frozenset((“python”,“fast”,“growing”,“in”,2018))****#frozenset**
k**=bool(18)****#bool**
l**=bytes(8)****#bytes**
m**=bytearray(8)****#bytearray**
n**=memoryview(bytes(18))****#memoryview**
Numbers are stored in numeric Types. when a number is assigned to a variable, Python creates Number objects.
#signed interger
age**=**18
print**(age)**
Output**:**18
Python supports 3 types of numeric data.
int (signed integers like 20, 2, 225, etc.)
float (float is used to store floating-point numbers like 9.8, 3.1444, 89.52, etc.)
complex (complex numbers like 8.94j, 4.0 + 7.3j, etc.)
A complex number contains an ordered pair, i.e., a + ib where a and b denote the real and imaginary parts respectively).
The string can be represented as the sequence of characters in the quotation marks. In python, to define strings we can use single, double, or triple quotes.
# String Handling
‘Hello Python’
#single (') Quoted String
“Hello Python”
# Double (") Quoted String
“”“Hello Python”“”
‘’‘Hello Python’‘’
# triple (‘’') (“”") Quoted String
In python, string handling is a straightforward task, and python provides various built-in functions and operators for representing strings.
The operator “+” is used to concatenate strings and “*” is used to repeat the string.
“Hello”+“python”
output**:****‘Hello python’**
"python "*****2
'Output : Python python ’
#python web development #data types in python #list of all python data types #python data types #python datatypes #python types #python variable type