Как переформатировать временную метку в Python - PullRequest
1 голос
/ 14 сентября 2011

У меня есть текст ниже, который нужно обработать. В настоящее время указывается метка времени, а затем значение. Формат отметки времени - yyyymmdd, и я хочу иметь возможность изменить его на yyyy-mm-dd или какой-либо другой вариант: yyyy/mm/dd и т. Д. Я не могу найти строковый метод, который вставляет символы в строки, поэтому я Я не уверен, что лучший способ сделать это. Ищите эффективность здесь и общие советы по нарезке и нарезке текста в Python. Заранее спасибо!

19800101,0.76
19800102,0.00
19800103,0.51
19800104,0.00
19800105,1.52
19800106,2.54
19800107,0.00
19800108,0.00
19800109,0.00
19800110,0.76
19800111,0.25
19800112,0.00
19800113,6.10
19800114,0.00
19800115,0.00
19800116,2.03
19800117,0.00
19800118,0.00
19800119,0.25
19800120,0.25
19800121,0.00
19800122,0.00
19800123,0.00
19800124,0.00
19800125,0.00
19800126,0.00
19800127,0.00
19800128,0.00
19800129,0.00
19800130,7.11
19800131,0.25
19800201,.510
19800202,0.00
19800203,0.00
19800204,0.00

Ответы [ 3 ]

3 голосов
/ 14 сентября 2011

Я бы сделал что-то вроде этого:

#!/usr/bin/env python

from datetime import datetime

with open("stuff.txt", "r") as f:
    for line in f:
        # Remove initial or ending whitespace (like line endings)
        line = line.strip()

        # Split the timestamp and value
        raw_timestamp, value = line.split(",")

        # Make the timestamp an actual datetime object
        timestamp = datetime.strptime(raw_timestamp, "%Y%m%d")

        # Print the timestamp separated by -'s. Replace - with / or whatever.
        print("%s,%s" % (timestamp.strftime("%Y-%m-%d"), value))

Это позволяет импортировать или распечатать временную метку в любом формате, разрешенном strftime .

1 голос
/ 14 сентября 2011

Строки не являются изменяемыми, поэтому вставка символов в строки не будет работать.Попробуйте это:

date = '19800131'
print '-'.join([date[:4],date[4:6],date[6:]])
1 голос
/ 14 сентября 2011

общие рекомендации по нарезке и нарезке текста в Python

Оператор среза:

str = '19800101,0.76'
print('{0}-{1}-{2}'.format(str[:4], str[4:6], str[6:]))

Чтение: строки (ищитечасти на кусочки) и форматирование строки .

...