首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于python中的文件下载

关于python中的文件下载
EN

Stack Overflow用户
提问于 2016-06-30 15:11:33
回答 1查看 31关注 0票数 0

我写了这段代码来下载srt字幕文件,但这不起作用。请检查这个问题,并帮助我与代码。我需要找出我正在做的错误是什么。谢谢。

代码语言:javascript
复制
from urllib import request 

srt_url = "https://subscene.com/subtitle/download?mac=LkM2jew_9BdbDSxdwrqLkJl7hDpIL_HnD-s4XbfdB9eqPHsbv3iDkjFTSuKH0Ee14R-e2TL8NQukWl82yNuykti8b_36IoaAuUgkWzk0WuQ3OyFyx04g_vHI_rjnb2290" 

def download_srt_file(srt_url): 
    response = request.urlopen(srt_url) 
    srt = response.read() 
    srt_str = str(srt) 
    lines = srt_str.split('\\n') 
    dest_url = r'srtfile.srt' 
    fx = open('dest_url' , 'w') 
    for line in lines: 
        fx.write(line) 
    fx.close() 

    download_srt_file(srt_url) 
EN

回答 1

Stack Overflow用户

发布于 2016-06-30 15:21:25

许多地方是错误的,或者是可以改进的。

  • 您的函数缺少return语句。
  • 您是从函数内部调用函数的,因此您实际上根本没有调用它。你永远不要输入它来开始,它不是一个字符串,它是一个变量,所以fx = open('dest_url', 'w')将返回一个错误(没有这样的文件)
  • ,以避免处理关闭和刷新你正在编写的文件只使用with
  • 也是错误的。你可以像那样转义斜杠。您想要拆分行,这样它就必须是split('\n')
  • Finally,,而不必将srt转换为string。它已经是了。

下面是您的代码的一个修改版本,希望它能正常工作,并实现了上述功能。

代码语言:javascript
复制
from urllib import request

def download_srt_file(srt_url):
    response = request.urlopen(srt_url)
    srt = response.read()
    lines = srt.split('\n')
    dest_url = 'srtfile.srt'
    with open(dest_url, 'w') as fx:
        for line in lines:
            fx.write(line)
    return

srt_url = "https://subscene.com/subtitle/download?mac=LkM2jew_9BdbDSxdwrqLkJl7hDpIL_HnD-s4XbfdB9eqPHsbv3iDkjFTSuKH0Ee14R-e2TL8NQukWl82yNuykti8b_36IoaAuUgkWzk0WuQ3OyFyx04g_vHI_rjnb2290"
download_srt_file(srt_url)

告诉我它对你是否有效。

最后要注意的是,您没有为正在编写的文件设置目标目录。你确定要这么做吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38116218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档