Смешивание файлов и циклов

Не нужно зацикливаться: .values вернет матрицу

url="https://www.test.com/csv.php"
dataset = requests.get(url, verify=False).content
df = pd.read_csv(io.StringIO(dataset.decode('utf-8')), header=None, sep=',')
data=df.values
27
задан martineau 31 October 2017 в 23:24
поделиться

3 ответа

Вы получаете ValueError, потому что ваш код, вероятно, имеет для строки в оригинале: в дополнение к original.readline () . Простое решение, которое решает проблему, не делая вашу программу медленнее или потребляя больше памяти, меняет

for line in original:
    ...

на

while True:
    line = original.readline()
    if not line: break
    ...
49
ответ дан 28 November 2019 в 04:48
поделиться

Использовать для и перечислять .

Пример:

for line_num, line in enumerate(file):
    if line_num < cut_off:
        print line

ПРИМЕЧАНИЕ : Предполагается, что вы уже очищаете свои файловые дескрипторы и т. Д.

Кроме того, функция takewhile может оказаться полезной, если вы предпочитаете более функциональный аромат.

12
ответ дан 28 November 2019 в 04:48
поделиться

Предполагая, что вам нужна только одна строка, это может помочь

import itertools

def getline(fobj, line_no):
    "Return a (1-based) line from a file object"
    return itertools.islice(fobj, line_no-1, line_no).next() # 1-based!

>>> print getline(open("/etc/passwd", "r"), 4)
'adm:x:3:4:adm:/var/adm:/bin/false\n'

Возможно, вы захотите отловить ошибки StopIteration (если в файле меньше строк).

0
ответ дан 28 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: