Вам необходимо создать пользовательский шаблонный фильтр .
from django.template import Library
from django.utils.numberformat import format
register = Library()
@register.filter
def floatdot(value, decimal_pos=4):
return format(value, ".", decimal_pos)
floatdot.is_safe = True
Использование:
{{ float_var|floatdot }}
или {{ float_var|floatdot:2 }}
Это разумная идея - создать сценарий FTP-сеанса так, как предполагал исходный постер, и это то, с чем Expect может помочь. Пакетные файлы в Windows не могут этого сделать.
Но вместо использования cURL или Expect вам может быть проще написать сценарий взаимодействия FTP с Powershell. Это другая модель, в которой вы не пишете напрямую сценарий для отправки текста на FTP-сервер. Вместо этого вы будете использовать Powershell для управления объектами, которые генерируют для вас диалог FTP.
Загрузить:
$File = "D:\Dev\somefilename.zip"
$ftp = "ftp://username:password@example.com/pub/incoming/somefilename.zip"
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
"Uploading $File..."
$webclient.UploadFile($uri, $File)
Загрузить:
$File = "c:\store\somefilename.zip"
$ftp = "ftp://username:password@example.com/pub/outbound/somefilename.zip"
"ftp url: $ftp"
$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($ftp)
"Downloading $File..."
$webclient.DownloadFile($uri, $File)
Для этого вам понадобится Powershell. Если вы не знаете, Powershell - это оболочка, подобная cmd.exe, которая запускает ваши .bat-файлы. Но Powershell запускает файлы .ps1 и намного мощнее. Powershell - это бесплатное дополнение к Windows, которое будет встроено в будущие версии Windows. Получите здесь .
Источник: http://poshcode.org/1134
Создайте командный файл со своими командами
, например: commands.txt
open www.domainhere.com
user useridhere
passwordhere
put test.txt
bye
Затем запустите клиент FTP из командной строки: ftp -s: commands.txt
Примечание: это будет работать для FTP-клиента Windows.
Изменить: должен был быть разрыв строки после имени пользователя перед паролем.
Пакетные файлы не работают. Они не просто "набирают" все - они запускают системные команды, в данном случае ftp
, ждут их возврата и запускают следующую команду ... так что в этом случае интерпретатор просто ждет для выхода ftp
.
Если вы должны использовать команду ftp
, затем подготовьте файл сценария (например, commands.txt
и запустите ftp -s: commands.txt
.
Но лучше использовать cURL или PHP / Perl / Python / любой другой скрипт.
Попробуйте вручную:
$ ftp www.domainhere.com
> useridhere
> passwordhere
> put test.txt
> bye
> pause
У меня была такая же проблема, и я решил ее с помощью решения, аналогичного тому, что предоставил Cheeso выше.
«не работает, говорит, что пароль необходим, попробовал несколько разных способов»
Ага, это потому что сеансы FTP через командный файл не требуют, чтобы имя пользователя было предварено строкой «пользователь». Отбросьте это и попробуйте.
Или вы могли видеть это, потому что ваш командный файл FTP не закодирован должным образом (это меня тоже укусило). Это дрянная часть создания командного файла FTP во время выполнения. Командлет Powershell для вывода файла не имеет варианта кодирования, который будет принимать Windows FTP (по крайней мере, не тот, который я смог найти).
Тем не менее, создание WebClient.DownloadFile - это лучший способ.