मुझे लगता है कि यह एक लोकप्रिय सवाल है, इसलिए उम्मीद है कि कोई मेरी मदद कर सकता है। मैं, हालांकि, स्टम्प्ड हूँ। मेरे पास CSV फ़ाइल है जिसमें पहले कॉलम में टाइमस्टैम्प है, जैसे कि

18:49:45
19:50:31
20:51:26

मेरा कोड नीचे है। मुझे लगता है कि मैं 24 घंटे, मिनट और सेकंड के लिए उचित स्वरूपण का उपयोग कर रहा हूं।

  import csv
  import time

  with open('file.csv', 'rb')as csvfile:
      filereader = csv.reader(csvfile, delimiter=',')
      for row in filereader:
          date = row[0]
          parsed = datetime.datetime.strptime(date, '%H:%M:%S')

त्रुटि: ValueError: समय डेटा 'लीगेसी सिस्टम' प्रारूप '%H:%M:%S' से मेल नहीं खाता

0
klex52s 8 पद 2018, 00:45

1 उत्तर

सबसे बढ़िया उत्तर

आपके पास एक शीर्षलेख पंक्ति है। आप पुनः प्राप्त करने के लिए next का उपयोग कर सकते हैं (और फिर त्यागें ) आपके csv.reader पुनरावर्तक से पहली पंक्ति:

from datetime import datetime
import csv
from io import StringIO

file = StringIO("""LEGACY SYSTEM
18:49:45
19:50:31
20:51:26""")

# replace file with open('file.csv', 'rb')
with file as csvfile:
    filereader = csv.reader(csvfile, delimiter=',')
    next(filereader)
    for row in filereader:
        parsed = datetime.strptime(row[0], '%H:%M:%S')
        print(parsed)

# 1900-01-01 18:49:45
# 1900-01-01 19:50:31
# 1900-01-01 20:51:26

यदि आपके पास एकाधिक हैं, जैसे दो, शीर्षलेख पंक्तियाँ, तो आप उन्हें अनदेखा करने के लिए for लूप का उपयोग कर सकते हैं:

for _ in range(2):
    next(filereader)
1
jpp 9 पद 2018, 21:48