Форум программистов, компьютерный форум, киберфорум
Наши страницы

Python: Сети

Войти
Регистрация
Восстановить пароль
 
Semen-Semenich
206 / 198 / 110
Регистрация: 21.03.2016
Сообщений: 665
#1

FTP создать папку с именем на кириллице - Python

31.08.2016, 22:46. Просмотров 788. Ответов 2
Метки нет (Все метки)

Всем доброго времени суток. есть скрипт для работы с фтп. скрипт считывает имя пользователя пк и создает папку с именем пользователя проблема заключается в том что если имя пользователя на кириллице то выводит ошибку при создании папки на сервере. указание кодировки в начале файла результатов не дало (может не так указывал,явно что то с кодировкой) питон 3.5. FTPсервер на винде 7. с другой прогой создает папку на кир. спокойно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import ftplib
import urllib.request
import datetime
import os,sys
 
def ip_read ():
    ip = urllib.request.urlopen('https://getfile.dokpub.com/yandex/get/https://yadi.sk/i/AHYsR2gIs87j9')
    return ip.read().decode('utf-8')
 
def date_name(x):
    if x == 'd':
        return datetime.datetime.now().strftime("%d.%m.%Y ") 
    elif x == 't':
        return datetime.datetime.now().strftime("%H.%M.%S")
    else:
        return os.environ.get( "USERNAME" )
        
host = ip_read ()
ftp_user = 'user'
password = 'user'
time = '10'
con = ftplib.FTP(host, ftp_user, password,time)
con.mkd(date_name('n'))
лог ошибки
Python
1
2
3
4
5
6
7
8
9
10
11
12
Traceback (most recent call last):
  File "C:\Users\Дом\Desktop\PYTHON\сокет\skrin_ftp.py", line 23, in <module>
    con.mkd(date_name('n'))
  File "C:\Users\Дом\AppData\Local\Programs\Python\Python35-32\lib\ftplib.py", line 642, in mkd
    resp = self.voidcmd('MKD ' + dirname)
  File "C:\Users\Дом\AppData\Local\Programs\Python\Python35-32\lib\ftplib.py", line 276, in voidcmd
    self.putcmd(cmd)
  File "C:\Users\Дом\AppData\Local\Programs\Python\Python35-32\lib\ftplib.py", line 198, in putcmd
    self.putline(line)
  File "C:\Users\Дом\AppData\Local\Programs\Python\Python35-32\lib\ftplib.py", line 193, in putline
    self.sock.sendall(line.encode(self.encoding))
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 4-6: ordinal not in range(256)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2016, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос FTP создать папку с именем на кириллице (Python):

Imaplib - скачивание файла с именем на кириллице - Python
Здравствуйте Есть такой скрипт, который скачивает все вложенные файлы во всех подходящих письмах. Он отлично работает, если имя...

Загрузить папку на FTP - Python
Добрый вечер. Подскажите пожалуйста, как загрузить на FTP-сервер при помощи ftplib папку с файлами? С загрузкой отдельных файлов...

Создать функцию с произвольным именем во время выполнения python скрипта - Python
Предположим во время выполнения python скрипта нужно создать функцию с произвольным именем, содержащимся в строке как это можно сделать?...

Создать текстовый файл с указанным именем и записать в него N строк длины N - Python
Дано имя файла и целое число N (0&lt;N&lt;27). Создать текстовый файл с указанным именем и записать в него N строк длины N; строка с номером K...

Создать для каждого файла папку его имени и перенести в свою папку под именем index.html - CMD/BAT
Помогите товарищи В папке файлы без расширений нужно создать для каждого файла папку его имени и перенести каждый файл в свою папку при...

Создать папку на FTP - C++
Здравствуйте. Скажите пожалуйста, с помощью чего можно создать директорию на FTP сервере? Желательно с примером. Спасибо.

2
pyuser
209 / 194 / 26
Регистрация: 26.05.2011
Сообщений: 360
02.09.2016, 02:38 #2
Попробуйте так:
Python
1
2
con = ftplib.FTP(host, ftp_user, password,time)
con.__class__.encoding = "utf-8"
1
Semen-Semenich
206 / 198 / 110
Регистрация: 21.03.2016
Сообщений: 665
02.09.2016, 14:11  [ТС] #3
спасибо помогло только con.__class__.encoding = "cp1251"
я так понял что это кодировка в которой работает фтп сервер и поэтому его надо указывать явно в объекте con а не в кодировке скрипта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2016, 14:11
Привет! Вот еще темы с ответами:

Создать папку с именем в опции - CMD/BAT
Привет, как создать папку с именем вводимое в опции? я вот так делаю @echo off SET /p name = &quot;Enter param: &quot; if...

Создать папку с именем системной даты - Visual Basic .NET
Добрый вечер, уважаемые программисты. Подскажите, пожалуйста, как при создании папки: IO.Directory.CreateDirectory(&quot;C:\Dir&quot;) её...

QNetworkAccessManager создать папку на ftp сервере - C++ Qt
Пишу програмку. на компе у пользователя програмка ищет файлы с определенным расширением, в основном это ворд и эксель, и потом все...

Невозможно создать папку с именем con, почему? - Windows XP
Так-то не смешно ни разу. C:\papka&gt;dir Том в устройстве C не имеет метки. Серийный номер тома: 3875-65DF Содержимое папки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru