Как Вы считали бы входной файл в Схеме?

Вы не указываете дату при создании объекта jj datetime, поэтому используется дата по умолчанию 1900-01-01. Часовые пояса не являются фиксированными объектами; со временем они меняются, и часовой пояс США / Центрального региона использовал другое смещение еще в 1900 году.

Как минимум, используйте недавнюю дату, например, сегодня , например:

# use today's date, with the time from jj, and a given timezone.
datetime.datetime.combine(datetime.date.today(), jj.time(), tzinfo=tzz)

Если вам нужно только время , тогда не создать datetime объекты для их хранения; модуль datetime имеет выделенный объект time(). Я бы также не использовал strftime() для создания объектов из литералов. Просто используйте конструктор для передачи целых чисел:

jj = datetime.time(10, 0, 0)  # or just .time(10)

Другие хорошие правила: Если вам приходится иметь дело с датами с часовыми поясами, попробуйте переместить их в datetime объектов в UTC в тот момент, когда ваш код получает или загружает их. Если у вас есть только время дня, но вам все еще нужна поддержка часового пояса, прикрепите их к сегодняшней дате, чтобы вы получили правильный часовой пояс. Снова конвертируйте в строки как можно позже.

6
задан 29 November 2008 в 21:15
поделиться

2 ответа

Едва ли уверенный, какие структуры Вы имели в виду, но говорите, у Вас был текстовый файл как следующее:

--> cat blah.txt 
foo bar baz
1 2 3 4 5
aa bb cc dd ee

Вы могли преобразовать его непосредственно в список списков в схеме с помощью sed:

--> echo "(define mylist '("`sed -e 's/\(.*\)/(\1)/' blah.txt`"))" > foo.txt

который затем производит следующий файл:

--> cat foo.txt 
(define mylist '((foo bar baz) (1 2 3 4 5) (aa bb cc dd ee)))

И теперь все, что необходимо сделать, загрузить файл в схему:

(load "foo.txt")

И можно получить доступ к структуре через 'mylist' переменную.

6
ответ дан 10 December 2019 в 02:55
поделиться

Походит на файл CSV с вкладками вместо запятых. При использовании Схемы PLT (DrScheme/mzscheme) neil's csv, библиотека, вероятно, что Вы хотите.

Вот документация.

Вот то, как загрузить его удаленно:

(require (planet neil/csv:1:2/csv))

По крайней мере, это - то, что говорятся инструкции. На моем немного oodate DrScheme, это - то, что работало:

(require (planet "csv.ss" ("neil" "csv.plt" 1 (= 1))))
3
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

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