FileNotFoundError even though Absolute Path Specified

178 views Asked by At

I am running a simple python webserver [SimpleHTTPServer] in my Linux . Wrote a python program to download all the files hosted in that server to my Windows Machine . But for some reason program is throwing FileNotFoundError even though Directory exists and I've provided Absolute Path .

Here is the code : https://drive.google.com/file/d/1CDrueDJcbu2z1XeeB_iYv0zmfIX1cCkx/view?usp=sharing

It's working correctly in Linux but trouble with Windows . Thanks

import requests
import argparse
from sys import argv
from urllib.parse import unquote
import os
from time import time
import random
from colorama import Fore, Style
import platform

def formatFiles(name):
    name = name[13:-9]
    nameLen = len(name) - 2
    nameLen = int(nameLen/2)
    name = name[:nameLen]
    return name

# Creating a Temporary Folder to Download all the files in it
def fileCreate(saveFolder):
    random.seed(int(time()))
    text = ""
    for x in range(5):
        y = random.randrange(65,91)
        text += chr(y)
    saveFolder += text
    os.popen("mkdir {}".format(saveFolder))
    print("Temp Directory {} created to save files/folders".format(text))
    return saveFolder


def winDows(endPoint, banner):
    resp = requests.get(endPoint, allow_redirects=True)                       
    resp = resp.text.split("\n")                 
    resp = list(map(unquote, resp[10:-5]))                                #URL decoding using unquote
    resp = list(map(formatFiles,resp))

    for dir in resp:
        
        tempPath = ""
        tempEndpoint = endPoint[len(serverURL):]          # Getting directory structure by removing IP:PORT in URL
        tempPath = "\\".join(tempEndpoint.split("/"))     # Removing / and adding \\ for Windows path
        print(banner + dir)
        tdir = dir
        if(dir[-1] == "/"):
            if( dir.split(" ")!=1 ):                        # If the directory name has spaces , 
                tdir = dir[:-1]
                tdir = "\""+tdir+"\""+"\\"
                
            os.popen("mkdir "+saveFolder+"\\"+tempPath+tdir)
            r = winDows(endPoint+dir, banner[:-4]+"    |___")
        else:
            data = open(saveFolder+"\\"+tempPath+dir, "wb")
            fileData = requests.get(endPoint+dir, allow_redirects=True)
            data.write(fileData.content)
            data.close()
    
    return 1

parser = argparse.ArgumentParser()
sideBanner = "  |___ "

parser.add_argument("ip", help = "IP address of FTP Server", type=ip_valid)
parser.add_argument("port" , help = "FTP Server Port you want to access", type=port_valid)
parser.add_argument("dst", help="Destination Path to save your files")
args = parser.parse_args()

ip = argv[1]
port = argv[2]
saveFolder = argv[3]

serverURL = "http://"+ip+":"+port+"/"
saveFolder = fileCreate(saveFolder)
print("Destination Folder - {}".format(saveFolder))

if(platform.system() == "Linux"):
    linuX(serverURL, sideBanner)
else:
    winDows(serverURL, sideBanner)

0

There are 0 answers