weixin_42175269 2021-03-20 00:25 采纳率: 50%
浏览 164
已采纳

name 'your_absolute_file_path' is not defined

import json
import os
import time
import urllib

import requests
import requests_toolbelt

import hashlib

from requests_toolbelt import MultipartEncoder

WENKU_BASE_URL = 'https://wenku.baidu.com'
# 正式
# WENKU_UPLOAD_URL = WENKU_BASE_URL + '/doc/orgapi/orgupload'
# 测试
WENKU_UPLOAD_URL = WENKU_BASE_URL + '/doc/orgapi/fororguploadtest'
# 正式
# WENKU_APPKEY = '你的正式appkey'
# 测试
WENKU_APPKEY = 'test'
# 正式
# WENKU_SECRET = '你的正式secret'
# 测试
WENKU_SECRET = 'g75a50a20baed9bbd12a6e69d091f4d6'
def upload(file_path=''):
        file_name = os.path.basename(file_path)
        file_tail = get_file_tail(file_name)
        file_name_without_tail = file_name[:-(len(file_tail) + 1)]
        new_file_name = get_md5(file_name_without_tail) + '.' + file_tail
        tmp_file_path = 'C:/Users/Administrator/Desktop/1' + os.sep + new_file_name
        # 生成文件名不为中文的临时文件
        os.rename(file_path, tmp_file_path)

        timestamp = '{0}'.format(int(time.time()))
        flag = '10'
        price = '2'

        title = urllib.parse.quote(file_name_without_tail)
        summary = urllib.parse.quote(file_name_without_tail)

        pre_sign_str ='appkey={0}&flag={1}&price={2}&summary={3}&timestamp={4}&title={5}&secret={6}&filemd5={7}'.format(
                WENKU_APPKEY, flag, price, summary, timestamp, title,
WENKU_SECRET, get_file_md5(tmp_file_path)
        )
        print('pre_sign_str1:', pre_sign_str)
        sign_str = get_md5(pre_sign_str)
        print('sign_str:', sign_str)
        # flag 0:免费文档3:机构文档10:付费文档19:商业文档
        # price 单位为分
        fields = {'object_file': (os.path.basename(tmp_file_path),
open(tmp_file_path, 'rb'), 'multipart/form-data'),
                                                'appkey': WENKU_APPKEY,
                                                'timestamp': timestamp,
                                                'sign': sign_str,
                                                'title': title,
                                                'flag': '10',
                                                'price': '2',
                                                'summary': summary
                                                }
        data = MultipartEncoder(fields=fields)
        print('ct:', data.content_type)
        result = requests.Session().post(url=WENKU_UPLOAD_URL, data=data,
verify=False, headers={
                'Content-Type': data.content_type})
        # print(result.request.headers)
        print('result.status_code:', result.status_code)
        if result.status_code == 200:
                result_str = result.text
                print('result_str:', result_str)
                result_json = json.loads(result_str)
                code = result_json['status']['code']
                msg = result_json['status']['msg']
                if code == 0:
                        print('msg:', msg)
                        data = result_json['data']
                        print('上传成功,doc_id:', data['doc_id'])
                else:
                        print('code:', code)
                        print('msg:', msg)
        else:
                print('网络请求出错')
# 获取文件名后缀
def get_file_tail(file_name=''):
        # 获取文件后缀名
        file_arr = file_name.split(".")
        if len(file_arr) >= 2:
                return file_arr[len(file_arr) - 1].lower()
        else:
                return 'default'


def get_file_md5(file_path=''):
        try:
                with open(file_path, 'rb') as fp:
                        data = fp.read()
                file_md5 = hashlib.md5(data).hexdigest()
                print(file_md5)
                return file_md5
        except Exception as e:
                print(e.args)
                return ''


def get_md5(source_str=''):
        return hashlib.md5(source_str.encode('utf8')).hexdigest()


if __name__ == '__main__':
        upload(your_absolute_file_path)

 

提示

Traceback (most recent call last):
  File "I:/new-python/down/baidu.py", line 110, in <module>
    upload(your_absolute_file_path)
NameError: name 'your_absolute_file_path' is not defined如何解决呢

  • 写回答

3条回答 默认 最新

  • coagenth 2021-03-20 00:35
    关注

    在最后一行的upload()函数调用前写上你要上传文档的绝对路径。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料