La conversion de Matlab datenum format Python

J'ai juste commencé à se déplacer à partir de Matlab pour Python 2.7 et j'ai un peu du mal à lire mon .mat-fichiers. Fois, l'information est stockée dans Matlab datenum format. Pour ceux qui ne sont pas familier avec elle:

Une série date nombre représente une date du calendrier, comme le nombre de jours qui s'est écoulé depuis une base fixe la date. Dans MATLAB, numéro de série, le numéro 1 est le 1er janvier 0000.

MATLAB utilise également de série temps de représenter les fractions de jours, commençant à minuit; par exemple, 6 h, est égale à 0.75 série jours. Ainsi, la chaîne '31-Oct-2003, 6:00 PM" dans MATLAB est le numéro 731885.75.

(prises à partir de la documentation Matlab)

Je voudrais convertir cette Pythons format de l'heure et j'ai trouvé ce tutoriel. En bref, l'auteur affirme que

Si vous analysez ce à l'aide de python datetime.fromordinal(731965.04835648148) le résultat peut paraître raisonnable [...]

(avant toutes les autres conversions), qui ne fonctionne pas pour moi, depuis datetime.fromordinal attend un entier:

>>> datetime.fromordinal(731965.04835648148) 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: integer argument expected, got float

Alors que je pourrais simplement autour d'eux vers le bas pour les données journalières, j'ai réellement besoin d'importer finement temps de la série. Quelqu'un aurait-il une solution pour ce problème? Je voudrais éviter de reformater mon .tapis de fichiers puisqu'il y en a beaucoup et mes collègues qui ont besoin de travailler avec eux en tant que bien.

Si ça aide, quelqu'un d'autre a demandé pour l'inverse. Malheureusement, je suis trop nouveau pour Python pour vraiment comprendre ce qui s'y passe.

/edit (2012-11-01): Cela a été corrigé dans le tutoriel posté ci-dessus.

OriginalL'auteur Fred S | 2012-12-20