Python Post请求采用完整的文件路径,而不仅仅是文件名
我向我的web应用程序发送post请求,我的问题始终是发送mediaName的完整路径,它应该只发送文件名 这是我的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
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)…这将返回两个值。但您只需要一个…只需使用一个将返回文件名。