Я не удержался, чтобы написать пакетный скрипт для выполнения твоей задачи. Данный скрипт называется reshape.bat
, предоставьте входной текстовый файл в качестве аргумента командной строки, например:
reshape.bat "algtest_extract.txt"
Чтобы сохранить выходные данные в другом файле, скажем, algtest_reshaped.txt
, сделайте следующее: [116 ]
reshape.bat "algtest_extract.txt" > "algtest_reshaped.txt"
Вот код (см. Все пояснительные замечания):
@echo off
setlocal EnableExtensions DisableDelayedExpansion
rem // Define constants here:
set "_FILE=%~1" & rem // (file to process; `%~1` means first argument)
set "_COL=3" & rem // (number of columns in the output data)
set "_SEP=," & rem // (separator character for input and output data)
set "_PAD=" & rem // (if defined, fill up last row with empty cells)
rem // Read from file:
< "%_FILE%" call :PROCESS
endlocal
exit /B
:PROCESS
rem // Initialise variables:
set "REST=" & rem // (remaining text string after the first separator)
set "LINE=" & rem // (row collector for line/row to output)
set "IDX=0" & rem // (column counter for output data)
setlocal EnableDelayedExpansion
:READ
rem // Read some text, 1023 characters/bytes at most:
set "STR=" & set /P STR=""
rem // Terminate loop if no more data are available:
if not defined STR goto :END
rem // Precede with potential remainder from previous loop:
set "STR=!REST!!STR!"
:PARSE
rem // Extract everything behind the first separator:
if defined STR set "REST=!STR:*%_SEP%=!"
rem // No separator had been found, so read more text:
if "!REST!"=="!STR!" goto :READ
rem // Extract part in front of first separator:
for /F "delims=%_SEP%" %%I in ("ITEM=!STR!") do set "%%I"
rem // Increment column counter:
set /A "IDX+=1" & if !IDX! lss %_COL% (
rem // Output line/row not yet complete, so go on assembling:
set "LINE=!LINE!%_SEP%!ITEM!"
) else (
rem // Output line/row complete, hence return it:
echo(!LINE:*%_SEP%=!%_SEP%!ITEM!
rem // Reset row collector and column counter:
set "LINE=" & set /A "IDX=0"
)
rem // Keep on parsing using the remainder:
set "STR=!REST!" & goto :PARSE
:END
rem // Return potential remaining data:
if defined _PAD (set /A "IDX=_COL-IDX-1") else (set /A "IDX=0")
set "LINE=!LINE!%_SEP%!REST!"
for /L %%I in (1,1,%IDX%) do set "LINE=!LINE!%_SEP%"
if defined LINE echo(!LINE:*%_SEP%=!
endlocal
Можно использовать gae2django для преобразования приложений AppEngine в приложение Django.
Как упомянуто в этой статье http://code.google.com/appengine/articles/pure_django.html
gae2django http://code.google.com/p/django-gae2django/
Как хороший консультант, я сказал бы, что ответ, "зависит".
В первую очередь, можно всегда выполнять проект GAE в SDK. Таким образом до той степени Вы не связываетесь. Кроме того, это зависит от того, что другие API Вы используете. Библиотека веб-приложения очень похожа на некоторых других, но я не думаю, что это доступно как автономное; однако, GAE поддерживает Django как веб-платформу также, и это, конечно, доступно одинокий.
Кодом является просто Python. Но некоторые API, как данные API, действительно предназначены для взаимодействия с облаком Google; Вы не можете быть уверены, что можно переместиться, произвольная программа GAE на другую платформу без переделывают.
У меня нет большого практического опыта GAE, но я читал эту статью недавно, которая затрагивает Ваш вопрос:
http://waxy.org/2008/04/exclusive_google_app_engine_ported_to_amazons_ec2/
Если Вы не используете собственную платформу WebApp Google, но полагаетесь на большее количество стандартизованных инструментов (я не говорю, что Django здесь), существует только немного вещей изолировать от логики базового приложения и сделать сменным/выгружаемым:
По-моему - стоящий попытки.
При использовании Django 0.96, можно переместить код в другой хост после некоторой незначительной работы. Необходимо будет изменить порт Модели от хранилища данных до другой базы данных. Необходимо будет прекратить использовать Google, обеспеченный Пользовательский класс и возможно другой Google определенные API.
Я портировал приложения Django к GAE без большой проблемы.
Я разрабатываю движок приложения (java) уже пару месяцев.
Теоретически, если вы придерживаетесь таких стандартов, как JPA или JDO для доступа к данным
.
и не используйте расширенные возможности, такие как очереди задач, у вас не должно быть много
.
Проблема переноса приложения в другую среду.
Сказав это, я часто использую низкоуровневый google apis для доступа к хранилищу данных, чтобы избежать кошмарных проблем с производительностью. Побочные эффекты этой проблемы могут быть до некоторой степени уменьшены, если ваше приложение имеет модульный уровень доступа к данным
. С другой стороны, если у меня есть приложение, работающее без сбоев в движке приложения, я не могу придумать ни одной причины, чтобы переместить его куда-либо еще.