孙忠山 发表于 2021-9-19 20:56

python通过写bat调用N_m3u8DL-CLI出错

import os
from time import sleep

def call_N_m3u8(m3u8url,videoname = '',key = '',path = './Downlodas'):
    videoname = videoname.replace('/','.').replace('\\','.').replace(':','.').replace('*','.').replace('?','.').replace('<','.').replace('>','.').replace('|','.')
    if videoname == '':
      videoname = m3u8url.split('/')[-1]
    with open('temp.bat','w',encoding='utf-8') as f:
      f.write('@echo off\n::Created by N_m3u8DL-CLI-SimpleG\nchcp 65001 >nul\n')
      f.write(f'TITLE {videoname}\n')
      f.write(f'N_m3u8DL-CLI_v2.9.3.exe "{m3u8url}" --workDir "{path}" --saveName "{videoname}" --useKeyBase64 "{key}" --enableDelAfterDone\n')
      f.write('cmd')
      # name = datetime.now().strftime('%Y-%m-%d %H.%M.%S')
    cmd = 'start temp.bat'
    os.system(cmd)
    while os.path.exists(f'{path}/{videoname}.mp4') == False:
      sleep(0.5)
    print(videoname, '下载完成!')

通过@细水流长 提供的代码,能够成功下载,但是下载之后执行不了“--enableDelAfterDone”,导致很多下载ts文件夹需要手动删除,并且cmd窗口需要手动关闭。

求解决方法

平淡最真 发表于 2021-9-19 23:33

窗口不关闭是因为你最后一行加了cmd    这一行没用

孙忠山 发表于 2021-9-20 12:18

平淡最真 发表于 2021-9-19 23:33
窗口不关闭是因为你最后一行加了cmd    这一行没用

--enableDelAfterDone 这个参数不执行,是怎么回事呢?

平淡最真 发表于 2021-9-20 12:51

孙忠山 发表于 2021-9-20 12:18
--enableDelAfterDone 这个参数不执行,是怎么回事呢?

复现不了,你至少把log发出来吧
或者这边去问作者   https://github.com/nilaoda/N_m3u8DL-CLI/issues
或者@我是你老大

孙忠山 发表于 2021-9-20 21:33

平淡最真 发表于 2021-9-20 12:51
复现不了,你至少把log发出来吧
或者这边去问作者   https://github.com/nilaoda/N_m3u8DL-CLI/issues   ...

PEP 8: E501 line too long (149 > 120 characters)

孙忠山 发表于 2021-9-20 21:43

手动打开生成的bat文件没有问题,python调用bat打开N_m3u8DL-CLI,能够正常下载,但是--enableDelAfterDone参数执行不了,log文件中这个参数也没有写到里面,返回到CMD窗口中就是上面的错误,不是内部指令。@细水流长 @我是你老大

细水流长 发表于 2021-9-22 22:38

页: [1]
查看完整版本: python通过写bat调用N_m3u8DL-CLI出错