J'ouvre un fichier sur une machine distante en utilisant sftp et ça marche bien, mais je a obtenu cette erreurValueError: les données de temps ne correspondent pas au format '% Y-% m-% d% H:% M:% S' sur le fichier machine distant
ValueError: time data '"2015-06-25 14:50:00"' does not match format
'%Y-%m-%d %H:%M:%S'
mais le format que j'utilise est correct. Voici mon code pour la partie respective du code.
#!/usr/bin/env python
# -*-coding:utf-8 -*
import os
import sys
import time
import stat
import pysftp as sftp
import subprocess
import paramiko
import datetime
from datetime import datetime, timedelta
from time import mktime, strftime, localtime, sleep
u_name = 'robi'
pswd = 'xxxx'
port = 22
r_ip = 'xxx.xxx.x.xxx'
sec_key = '/home/rob/key_detail'
myconn = paramiko.SSHClient()
myconn.set_missing_host_key_policy(paramiko.AutoAddPolicy())
my_rsa_key = paramiko.RSAKey.from_private_key_file(sec_key)
session = myconn.connect(r_ip, username=u_name, password=pswd, port=port,
pkey=my_rsa_key)
# print myconn.get_transport().is_active()
# path1 = "/home/rob_remote/sensors/12/tem_data/temp.dat"
fmt = '%Y-%m-%d %H:%M:%S'
path1 = "/home/rob_remote/sensors/12/tem_data/temp.dat"
path2 = '/home/new/loc/13/press/pressure.dat'
start_time = datetime.strptime("2015-06-25 14:50:00", fmt)
latest_time = datetime.now()
step_size = 10
diff = latest_time - start_time
minutes_values = diff.total_seconds()/60
expected = int(minutes_values/step_size)
sftp = myconn.open_sftp()
with sftp.open(path1) as f:
read = f.readlines()[4:]
get_values = []
for line in read:
line = line.strip().split(',')
start_date = line[0]
start_date = datetime.strptime(start_date, fmt)
current_time = datetime.now()
step_size = 5
differ_time = current_time - start_date
minutes_values = differ_time.total_seconds()/60
get_values.append(int(minutes_values/step_size))
# print 'get_values:::::::::::::::::::', max(get_values)
get_val = max(get_values)
.
.
.
.
Quelqu'un peut-il m'aider ou me guider pour faire face à ce problème. Je serais reconnaissant.
Vous avez des guillemets doubles autour de la chaîne datetime de sorte que vous devez enlever ces ou de les ajouter à la chaîne de format ' ' "% Y-% m-% d% H:% M:% S" '' – EdChum
@EdChum Pouvez-vous donner un petit exemple comment ajouter" "à la chaîne de format. J'essaie 2 solutions mais elles ne fonctionnent pas. – robbin
@EdChum j'ai essayé cette solution data_tmp = [v.replace ("\" "," ") pour v dans start_date], mais résultat dans TypeError: doit être chaîne, pas la liste – robbin