【问题标题】:Download txt file from github [duplicate]从github下载txt文件[重复]
【发布时间】:2020-07-29 16:06:56
【问题描述】:

我在 Github 中有一个打开的 txt 文件,但是,我已经尝试了整个 StackOverflow 的答案 - 没有任何帮助:

github 链接: https://github.com/netology-code/py-homework-basic-files/blob/master/3.2.http.requests/DE.txt

最后,我完成了:

import os.path

cwd=os.getcwd()

import requests
url = 'https://github.com/netology-code/py-homework-basic-files/blob/master/3.2.http.requests/DE.txt'
resp = requests.get(url)

filename='file'
filename = os.path.join(cwd,filename)

但是项目目录中没有新文件,而且我收到了一堆我不需要的东西,要求“resp”文件,我什至不知道如何下载此文件本身的文本。有人可以帮忙吗?

是的,我刚刚看到一个带有文件的链接,它也可以使用,我收到了我想要的并且可以使用它:

https://raw.githubusercontent.com/netology-code/py-homework-basic-files/master/3.2.http.requests/DE.txt

但是,下载的问题依然存在。

【问题讨论】:

  • @Joe - 不,不幸的是,它没有帮助。结果是一个完整的空代码(如果我试图在里面的步骤中“打印”变量,并且最后没有创建文件。

标签: python python-3.x github download python-requests


【解决方案1】:

请注意,在代码中,您使用以github 开头的链接,而您描述为正常工作的链接以raw.github 开头 使用 second 你可以这样做:

import requests
url = 'https://raw.githubusercontent.com/netology-code/py-homework-basic-files/master/3.2.http.requests/DE.txt'
resp = requests.get(url)
with open('file.txt', 'wb') as f:
    f.write(resp.content)

此代码将在当前工作目录中创建file.txt 并下载内容。请注意,我使用'wb' 模式(写入二进制)和resp.content,即bytes。响应对象也有.text,也就是str,但是这种情况下字符编码可能会出现问题。

(在 Python 3.7.3 + requests 2.22.0 中测试)

【讨论】:

  • 我收到了NameError: name 'resp' is not defined
  • @Tropillo 我修复了我的代码示例
【解决方案2】:

您实际上从未将响应写入文件。您所做的只是将当前工作目录与您要写入的文件名连接起来。

要在当前目录中写入文件,您不需要 OS 模块。 Python 内置了对文件处理的支持。

此外,请求模块get 方法返回元数据以及文本。您可以在对象的 text 变量中提取纯文本。 (下:res.text

import requests as req

url = “https://github.com/netology-code/py-homework-basic-files/blob/master/3.2.http.requests/DE.txt”
res = req.get(url)

file = open(“filename.txt”, “w”)
file.write(res.text)
file.close()

open(f, m) 在当前目录中搜索名称为f 的文件并尝试打开它以读取”r” 或写入”w”。如果模式为 write 且文件不存在,Python 将尝试创建它。

如果您想了解有关文件 I/O 的更多信息,我建议您关注 w3schools.com 上的指南

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 2020-09-12
    • 2016-10-24
    • 2012-09-04
    • 2021-04-25
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多