Класс программы застрял / находится в режиме ожидания и не выполняет оставшиеся вызовы после первого вызова в Anaconda / командной строке, но работает в Spyder - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь использовать приглашение anaconda для запуска моего скрипта на python.На первом вызове он работает без сбоев, но на этом останавливается.Я попробовал Spyder, он работает, но я бы хотел, чтобы он работал в командной строке или командной строке anaconda.Любая причина, почему?

from decompress import decompress
from reddit import reddit
from clean import clean
from wikipedia import wikipedia

def main():
    dir_of_file = r"D:\Users\Jonathan\Desktop\Reddit Data\Demo\\"
    print('0. Path: ' + dir_of_file)
    reddit_repo = reddit()
    wikipedia_repo = wikipedia()
    pattern_filter = "*2007*&*2008*"
    print('1. Creating data lake')
    reddit_repo.download_files(pattern_filter,"https://files.pushshift.io/reddit/submissions/",dir_of_file,'s') 
    reddit_repo.download_files(pattern_filter,"https://files.pushshift.io/reddit/comments/",dir_of_file,'c')         

if __name__ == "__main__":
    main()

RS Загружено: эта строка кода выполняется:

reddit_repo.download_files(pattern_filter,"https://files.pushshift.io/reddit/submissions/",dir_of_file,'s') 

enter image description here Обновление:

Добавлен класс / функция

class reddit:

    def multithread_download_files_func(self,list_of_file):
        filename = list_of_file[list_of_file.rfind("/")+1:]
        path_to_save_filename = self.ptsf_download_files + filename
        if not os.path.exists(path_to_save_filename): 
            data_content = None
            try:
                request = urllib.request.Request(list_of_file)
                response = urllib.request.urlopen(request)
                data_content = response.read()
            except urllib.error.HTTPError:
                print('HTTP Error')
            except Exception as e:
                print(e)
            if data_content:
                with open(path_to_save_filename, 'wb') as wf:    
                    wf.write(data_content)                 
                    print(self.present_download_files + filename)                        

    def download_files(self,filter_files_df,url_to_download_df,path_to_save_file_df,prefix):
        #do some processing
        matching_fnmatch_list.sort()

        p = ThreadPool(200)
        p.map(self.multithread_download_files_func, matching_fnmatch_list)

1 Ответ

0 голосов
/ 27 марта 2019

Это была загрузка, которая занимала много времени.Я изменил сеть, и она работала, как и ожидалось.Так что нет проблем с cmd или anaconda

.
...