Python Post请求采用完整的文件路径,而不仅仅是文件名

Python Post请求采用完整的文件路径,而不仅仅是文件名,python,python-2.7,Python,Python 2.7,我向我的web应用程序发送post请求,我的问题始终是发送mediaName的完整路径,它应该只发送文件名 这是我的post请求结果 send: 'POST /web/home/testPOST HTTP/1.1\r\nHost: www.my.dev.com\r\nContent-Length: 76\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: python-requests/2.8.1\r\nConnecti

我向我的web应用程序发送post请求,我的问题始终是发送mediaName的完整路径,它应该只发送文件名

这是我的post请求结果

send: 'POST /web/home/testPOST HTTP/1.1\r\nHost: www.my.dev.com\r\nContent-Length: 76\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nUser-Agent: python-requests/2.8.1\r\nConnection: keep-alive\r\ncontent-type: application/json\r\n\r\n'

send: '{"status": "sucsses", "mediaName": "/var/tmp/ftp/myvideo.mp4"}'
输出应该是类似thsi的东西

send: '{"status": "sucsses", "mediaName": "myvideo.mp4"}'
这是我的职责

   def run(self):
        while True:
            status = "Failed"
            #logger.debug("Queue size: %s" %(str(self.queue.qsize())))
            (env, pfile) = self.queue.get()
            logger.debug("Thread %s Received %s and %s" %(str(self.threadID), pfile, env))
            metaName = "%s/%s.evs.xml" %(self.config[env]["upload_folder"], pfile)
            mediaName = "%s/%s.mp4" %(self.config[env]["upload_folder"], pfile)
            logger.info("Thread %s - Uploading metadata to %s FTP: %s" %(str(self.threadID), env, metaName))
            try:
                ur = uploadFTP(metaName, env)
        status = "Success"
            except:
                logger.debug("Thread %s - Uploading of metadata %s to %s failed" %(str(self.threadID), metaName, env))
                uploadComplete(pfile, status, env)
            if status == "Success": 
                logger.info("Thread %s - Sleeping to allow cms to pick up xml" %(str(self.threadID)))
                time.sleep(90)
                logger.info( "Thread %s - Uploading mediafile %s to %s" %(str(self.threadID), mediaName, env))
        ur = uploadFTP(mediaName, env)
                status = "Success"
        filename = os.path.basename(mediaName)
        http_client.HTTPConnection.debuglevel = 1
        logging.basicConfig(level=logging.DEBUG)
        logging.basicConfig()
        logging.getLogger().setLevel(logging.INFO)
        requests_log = logging.getLogger("requests.packages.urllib3")
        requests_log.setLevel(logging.INFO)
        requests_log.propagate = True
        url = 'http://www.my.dev.com/web/home/testPOST'
        headers = {'content-type': 'application/json'}
        payload = {'mediaName': mediaName ,'status': 'sucsses'}
        r = requests.post(url, data=json.dumps(payload), headers=headers)
        r.text
        r.status_code

                uploadComplete(pfile, status, env)
            logger.info("Thread %s - Upload completed with status %s" %(str(self.threadID), status))
            self.queue.task_done()

请提供任何建议。

使用路径拆分方法:

filename = os.path.split(mediaName)
冒犯的界线是

mediaName = "%s/%s.mp4" %(self.config[env]["upload_folder"], pfile)
正如abhinav kumar在评论中所述

如果不需要文件夹路径,请不要将其放在medianame中。你可以用

mediaName = "%s.mp4" %(pfile,)
或者干脆

mediaName = pfile + ".mp4"

mediaName=“%s/%s.mp4”%(self.config[env][“upload\u folder”],pfile)…在此行中,self.config[env][“upload\u folder”]返回的值是多少。如果它只是文件名,那么为什么要添加附加的%s,后跟“/”。已经删除了第二个变量%$,但我一直收到以下错误mediaName=“%s.mp4”%(self.config[env][“upload_folder”],pfile)TypeError:并非所有在字符串格式化过程中转换的参数Yes都会出现此错误…因为您试图转换两个参数,但只有一个位置可以转换。只需使用将返回文件名的文件名即可。(self.config[env][“upload_folder”],pfile)…这将返回两个值。但您只需要一个…只需使用一个将返回文件名。