2017-02-11 17 views
0

Я пытаюсь получить список файлов и каталогов, присутствующих в указанном URL-адресе. URL, который я использую, представляет собой онлайн-словарь: www.shabdkosh.com/kn/browse/. Мой код выглядит следующим образом:python - Не удается обнаружить ссылки другого языка с os.walk

html_files = [] 

for root, dirs, files in os.walk("www.shabdkosh.com/kn/browse"): 
    for file in files: 
     #Files in shabdkosh have a digit as name to represent page number 
     if file.isdigit(): 
      html_files.append(os.path.join(root, file)) 

при печати содержимого файлов, я получаю:

www.shabdkosh.com/kn/browse/3/1 
www.shabdkosh.com/kn/browse/a/1 
www.shabdkosh.com/kn/browse/a/10 
www.shabdkosh.com/kn/browse/a/2 
... 

Это круто. Но другие URL-адреса также должны быть получены. URL-адреса, содержащие алфавиты Каннады, не отображаются (Каннада - это индийский язык), даже если они существуют.

Например,

www.shabdkosh.com/kn/browse/ಅ/ 

Как и не отображаются, даже если они лежат на пути «www.shabdkosh.com/kn/browse» указан в качестве параметра для os.walk. Итак, как мне получить os.walk, чтобы получить список URL-адресов с письмами Каннады?

Я даже попробовал, включая следующий код в верхней части моего файла питона:

#!/usr/bin/env python 
# -*- coding: ascii -*- 

но не повезло. Любая помощь приветствуется.

P.S Извините, если это вас беспокоит, что я использую Старый python 2.7.

+0

Разве это не то, что вы хотели 'если file.isdigit (file'? Удалить условие, вы получите больше. – Gang

+0

не повезло. Я даже напечатал«файлы»вне состояния. Я только получить чистые английские URls –

ответ

1

пару вещей, чтобы попробовать:

  1. Если вы используете какие-либо кодирование вообще, она должна быть UTF-8, а не ASCII. Ясно, что это не символы ascii.
  2. Убедитесь, что ваш путь является unicode, например. os.walk (и "www.shabdkosh.com/kn/browse"). Смотрите комментарий Ciro на Using os.walk() to recursively traverse directories in Python