如何读取Github存储库中的所有文本文件?

时间:2019-05-17 20:28:35

标签: python github repository

我想读取Github存储库中的所有文本文件,但是文本文件的地址与原始文本地址不同。 Trump Speeches

例如查看以下链接: speech_00.txt in first status

现在,Speech_00.txt的地址与原始模式下的地址不同 speech_00.txt in raw status

如何处理而不编辑地址(例如添加 githubusercontent或删除blob)

此外,我使用以下代码读取了示例文本文件:

import urllib
response = urllib.request.urlopen("https://raw.githubusercontent.com/PedramNavid/trump_speeches/master/data/speech_72.txt")
Text = response.read()
Text=Text.decode("utf-8") 

2 个答案:

答案 0 :(得分:1)

一种实现此目的的简单方法(基于该目录特别是 结构化)将使循环迭代地添加到您输入的字符串中 作为您的文件路径:

import urllib

# Get master directory
speech_dir ="https://raw.githubusercontent.com/PedramNavid/trump_speeches/master/data/"
# Iterate through all speeches in directory, from 00 to 73
cur_speech = 00
end_speech = 73
while (cur_speech <= end_speech):
    # Change the speech you want to get
    speech_nm = ('speech_' + str(cur_speech) +'.txt')
    response = urllib.request.urlopen(speech_nm)
    # Do what you need to with the speech
    Text = response.read()
    Text = Text.decode("utf-8")
    # Update to the new speech
    cur_speech +=1

这样,您将遍历该特定目录中的每个语音。

答案 1 :(得分:0)

我使用您的代码(@ N.Yasarturk),并对其进行了编辑以获取所有文件。但是我问,还有其他方法(没有编辑地址)可以从Github存储库中读取这些文件吗?

import urllib
# Get master directory
speech_dir ="https://raw.githubusercontent.com/PedramNavid/trump_speeches/master/data/"
# Iterate through all speeches in directory, from 00 to 73
cur_speech = 0
temp=str(cur_speech)
end_speech = 73
while (cur_speech <= end_speech):
    # Change the speech you want to get
    if(cur_speech<10):
        temp="0"+str(cur_speech)
    else:
        temp=str(cur_speech)
    speech_nm = (speech_dir+'speech_' + temp +'.txt')
    print(speech_nm)
    response = urllib.request.urlopen(speech_nm)
    # Do what you need to with the speech
    Text = response.read()
    Text = Text.decode("utf-8")
    print(Text)
    # Update to the new speech
    cur_speech +=1