File Sharing App using Python
Last Updated :
03 Sep, 2021
Improve
Computer Networks is an important topic and to understand the concepts, practical application of the concepts is needed. In this particular article, we will see how to make a simple file-sharing app using Python. An HTTP Web Server is software that understands URLs (web address) and HTTP (the protocol used to view webpages). Python has several packages which is a collection of modules. And it has several built-in servers. The modules used in this project are:
- The HTTPServer is a socketserver, which creates and listens at the HTTP socket.
- The socketserver modules simplify the task of writing network servers.
- The webbrowser module provides us with a high-level interface to allow and display Web-based documents, simply calling the open() function.
- The pyqrcode module is used to generate QR Code in just two lines of code.
- OS module helps for interacting with the operating system. Used for opening files, manipulate paths, and read all lines in all the files on the command line.
- PyPNG allows PNG image files to be read and written using pure Python
Step-by-step Approach:
- Install third-party modules:
pip install pyqrcode pip install pypng
- Install the dependencies using pip install at the command line.
- Importing necessary modules:
- http.server and socketserver: To host in the browser.
- pyqrcode: To generate QRcode.
- png: To convert the QRCode into a png file.
- OS: To interact with the Operating system.
- Assign port and name of the user.
- Find Ip address of the PC and convert it to a QR code.
- Create the HTTP request.
- Display the QR code in browser.
Implementation of the above Approach:
Python3
# import necessary modules# for implementing the HTTP Web serversimport http.server# provides access to the BSD socket interfaceimport socket# a framework for network serversimport socketserver# to display a Web-based documents to usersimport webbrowser# to generate qrcodeimport pyqrcodefrom pyqrcode import QRCode# convert into png formatimport png# to access operating system controlimport os# assigning the appropriate port valuePORT = 8010# this finds the name of the computer useros.environ['USERPROFILE']# changing the directory to access the files desktop# with the help of os moduledesktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'OneDrive')os.chdir(desktop)# creating a http requestHandler = http.server.SimpleHTTPRequestHandler# returns, host name of the system under# which Python interpreter is executedhostname = socket.gethostname()# finding the IP address of the PCs = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(("8.8.8.8", 80))link = IP# converting the IP address into the form of a QRcode# with the help of pyqrcode module# converts the IP address into a Qrcodeurl = pyqrcode.create(link)# saves the Qrcode inform of svgurl.svg("myqr.svg", scale=8)# opens the Qrcode image in the web browserwebbrowser.open('myqr.svg')# Creating the HTTP request and serving the# folder in the PORT 8010,and the pyqrcode is generated# continuous stream of data between client and serverwith socketserver.TCPServer(("", PORT), Handler) as httpd: print("serving at port", PORT) print("Type this in your Browser", IP) print("or Use the QRCode") httpd.serve_forever() |
Output:
- Open the python file which has the above code on PC.
- This will generate a QR-code.

- Either Scan the QR-code or type the IP Address shown in the python shell in your mobile browser.

- Share the files with ease by scanning the QR-code that’s generated and get access to the files in PC, from the mobile browser.
Demonstration:

Why Port 8010 ?
TCP Port 8010 use a defined protocol to communicate depending on the application. A protocol is a set of formalized rules that explains how data is communicated over a network. This is secured and is not infected by Virus/Trojan.
Explanation:
- The code finds the name of the USERPROFILE through OS module. And changes the directory to access the files on the desktop.
- Finds the hostname to serve the file in a particular port for secured sharing.
- Then finds the IP address of the system so that we can connect a particular device.
- The IP address is converted into the form of QR-code using the module pyqrcode for easy use.
- The generated image is hosted in a web browser.
- Once the device connected to the same network either scanned QR code or type the IP address can access the files of the system.

