Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Загрузка файла с сайта через python.  (Прочитано 3657 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DenisVASI

  • Автор темы
  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Re: Загрузка файла с сайта через python.
« Ответ #15 : 15 Декабря 2015, 16:01:02 »
Подскажите тогда пожалуйста, какой файлообменник можно использовать чтобы нормально загружать этот data.csv

Axa-Ru

  • Гость
Re: Загрузка файла с сайта через python.
« Ответ #16 : 15 Декабря 2015, 17:14:41 »
dropbox подходит вроде.


Оффлайн DenisVASI

  • Автор темы
  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Re: Загрузка файла с сайта через python.
« Ответ #17 : 15 Декабря 2015, 20:15:46 »
Код работает, ну как минимум не выдает ошибку, но с дропбокса не  скачал.

Пользователь решил продолжить мысль [time]15 Декабрь 2015, 21:26:35[/time]:
http://my-files.ru/Save/xdgpyv/data%20(1).csv

вот ссылка, которую просто вставив в адресную строку скачивается файл.
но загрузка не происходит.

Пользователь решил продолжить мысль 15 Декабря 2015, 20:28:45:
Код: (python) [Выделить]
__author__ = 'denis'
import pandas as pd
import urllib.request
req = urllib.request.urlopen('http://my-files.ru/Save/xdgpyv/data%20(1).csv')
page = req.read()
ar = pd.read_csv('data.csv', sep=',', header=None, skiprows=5, skipfooter=4)
b = [round(x,4) for x in ar[1]]
b.reverse()
c = [str(x) for x in ar[0]]
c.reverse()
a = [0]
for i in range(1, len(b), 1):
  a.append(b[i] - b[i - 1])


def find_max_subarray(a, low, high):
    if high == low:
        return low, high, a[0]
    else:
        mid = int((low + high) / 2)
        left_low, left_high, left_sum = find_max_subarray(a, low, mid)
        right_low, right_high, rigth_sum = find_max_subarray(a, mid + 1, high)
        cross_low, cross_high, cross_sum = find_crossing(a, low, mid, high)
        if (left_sum >= rigth_sum) & (left_sum >= cross_sum):
            return left_sum, left_high, left_sum
        elif (rigth_sum >= left_sum) & (left_sum >= cross_sum):
            return right_low, right_high, rigth_sum
        else:
            return cross_low, cross_high, cross_sum


def find_crossing(a, low, mid, high):
    max_left = 0
    max_right = 0
    left_sum = -1e308
    sum = 0
    for i in range(mid, low, -1):
        sum = sum + a[i]
        if sum > left_sum:
            left_sum = sum
            max_left = i
            max_right = 0
    right_sum = -1e308
    sum = 0
    for j in range(mid + 1, high):
        sum = sum + a[j]
        if sum > right_sum:
            right_sum = sum
            max_right = j
    return max_left, max_right, left_sum + right_sum

min, max, sum = find_max_subarray(a, 0, len(a))
print(b)
print(a)
print(c)
print(sum," ", min," ", max)
print(sum," ", c[min], " ", c[max])
« Последнее редактирование: 15 Декабря 2015, 20:28:45 от DenisVASI »

shura1

  • Гость
Re: Загрузка файла с сайта через python.
« Ответ #18 : 15 Декабря 2015, 20:28:53 »
Попробовал, вроде все как бы работает. Google Drive. Закачиваете файл, включаете общий доступ к нему по ссылке. Дается ссылка и Python3 скачивает (по этой ссылке) без проблем.
« Последнее редактирование: 15 Декабря 2015, 20:37:39 от Jshura »

Оффлайн DenisVASI

  • Автор темы
  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Re: Загрузка файла с сайта через python.
« Ответ #19 : 15 Декабря 2015, 21:08:02 »
Возможно что-то не работает именно у меня, потому как не скачивает.
Попробуйте запустить этот код у себя.
1 ссылка: https://drive.google.com/file/d/0B6tmfSj7DGacX1RNekVjUXB0MGc/view?usp=sharing
2 в коде
Код: (python) [Выделить]
__author__ = 'denis'
import pandas as pd
import urllib.request
req = urllib.request.urlopen('https://docs.google.com/uc?id=0B6tmfSj7DGacX1RNekVjUXB0MGc&export=download')
page = req.read()
ar = pd.read_csv('data.csv', sep=',', header=None, skiprows=5, skipfooter=4)
b = [round(x,4) for x in ar[1]]
b.reverse()
c = [str(x) for x in ar[0]]
c.reverse()
a = [0]
for i in range(1, len(b), 1):
  a.append(b[i] - b[i - 1])


def find_max_subarray(a, low, high):
    if high == low:
        return low, high, a[0]
    else:
        mid = int((low + high) / 2)
        left_low, left_high, left_sum = find_max_subarray(a, low, mid)
        right_low, right_high, rigth_sum = find_max_subarray(a, mid + 1, high)
        cross_low, cross_high, cross_sum = find_crossing(a, low, mid, high)
        if (left_sum >= rigth_sum) & (left_sum >= cross_sum):
            return left_sum, left_high, left_sum
        elif (rigth_sum >= left_sum) & (left_sum >= cross_sum):
            return right_low, right_high, rigth_sum
        else:
            return cross_low, cross_high, cross_sum


def find_crossing(a, low, mid, high):
    max_left = 0
    max_right = 0
    left_sum = -1e308
    sum = 0
    for i in range(mid, low, -1):
        sum = sum + a[i]
        if sum > left_sum:
            left_sum = sum
            max_left = i
            max_right = 0
    right_sum = -1e308
    sum = 0
    for j in range(mid + 1, high):
        sum = sum + a[j]
        if sum > right_sum:
            right_sum = sum
            max_right = j
    return max_left, max_right, left_sum + right_sum

min, max, sum = find_max_subarray(a, 0, len(a))
print(b)
print(a)
print(c)
print(sum," ", min," ", max)
print(sum," ", c[min], " ", c[max])

shura1

  • Гость
Re: Загрузка файла с сайта через python.
« Ответ #20 : 15 Декабря 2015, 21:31:04 »
По ссылке из из текста не работает. По ссылке из кода работает. Google Drive пытается вместо файла csv подсунуть конвертированную в Google Docs страничку. Наверное, лучше вообще без разрешения туда файл закинуть - просто "data".

А так все работает

Код: (python) [Выделить]
>>> import urllib.request
>>> req = urllib.request.urlopen('https://docs.google.com/uc?id=0B6tmfSj7DGacX1RNekVjUXB0MGc&export=download')
>>> data = req.readlines()
>>> data[0:6]
[b'"Average weekly BID rates @ +/- 0%"\n', b'"www.oanda.com/currency/historical-rates/"\n', b'""\n', b'""\n', b'"End Date","USD/RUB","USD/USD","","","","","","","",""\n', b'"2015-12-06","67.2137","1.0000",,,,,,,,\n']


Оффлайн DenisVASI

  • Автор темы
  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
Re: Загрузка файла с сайта через python.
« Ответ #21 : 15 Декабря 2015, 21:35:47 »
Сейчас попробую запихнуть в zip архив, пусть скачивает оттуда и распаковывает в неизменном виде.

Пользователь решил продолжить мысль [time]15 Декабрь 2015, 22:46:20[/time]:
Гугл диск пытается мне и zip открыть :(


Пользователь решил продолжить мысль 15 Декабря 2015, 21:51:46:
А вот с этой ссылочки на dropbox нельзя заставить скачивать? https://www.dropbox.com/s/sih4ouxw864jynb/data.csv?dl=0
« Последнее редактирование: 15 Декабря 2015, 21:51:46 от DenisVASI »

 

Страница сгенерирована за 0.016 секунд. Запросов: 21.