<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic FTPlib datetime in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/ftplib-datetime/m-p/674024#M52124</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am experimenting a little bit with python.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the code I wrote at the moment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import os
from ftplib import FTP
ftp = FTP('??????')
ftp.login('??????','??????')
ftp.cwd('USBDISK2-0-01')
ftp.cwd('Progen')
count = 0
for root, dirs, files in os.walk('/home/anne/Test2'):
&amp;nbsp;&amp;nbsp;&amp;nbsp; for fname in files:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; full_fname = os.path.join(root, fname)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftp.storbinary('STOR ' + fname, open(full_fname, 'rb'))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(fname + ' correct')
ftp.quit()
print('Totaal: ' + str(count) + ' bestanden')
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code only upload the data from directory Test2 to the ftp server. This part is working perfectly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I want to check if the current file is on the ftp server. Therefore I wrote this script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import os
from ftplib import FTP
from datetime import datetime
import time
ftp = FTP('???????')
ftp.login('??????','???????')
ftp.cwd('USBDISK2-0-01')
ftp.cwd('Progen')

ftp.retrlines('LIST')

filenames = []
ftp.retrlines('NLST', filenames.append)
for filename in filenames:
&amp;nbsp;&amp;nbsp;&amp;nbsp; datetimeftp = ftp.sendcmd('MDTM ' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp; datetimepc = os.path.getmtime('/home/anne/Test2/' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp; modifiedTimeFtp = datetime.strptime(datetimeftp[4:], "%Y%m%d%H%M%S").strftime("%d %b %Y %H:%M:%S")
&amp;nbsp;&amp;nbsp;&amp;nbsp; modifiedTimePc = datetime.fromtimestamp(datetimepc).strftime("%d %b %Y %H:%M:%S")
&amp;nbsp;&amp;nbsp;&amp;nbsp; if modifiedTimeFtp &amp;gt; modifiedTimePc:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimeFtp
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimePc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "FTP file is recent"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "-------"
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimeFtp
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimePc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Local file is recent"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "-------"
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output of this code is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-rwxrwxrwx 1 ftp ftp 67 Mar 13 18:59 test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;13 Mar 2014 17:59:45&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;13 Mar 2014 18:26:47&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Local file is recent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I think is really strange is that the file on the ftpserver is 18:59 but the MDTM command is giving me 17:59. I thought that the ftpserver had a wrong timezone but the timezone on the ftpserver and my computer are the same. Can someone explain to me what I am doing wrong here?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Mar 2014 17:13:57 GMT</pubDate>
    <dc:creator>annekleyheeg</dc:creator>
    <dc:date>2014-03-13T17:13:57Z</dc:date>
    <item>
      <title>FTPlib datetime</title>
      <link>https://community.esri.com/t5/python-questions/ftplib-datetime/m-p/674024#M52124</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am experimenting a little bit with python.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the code I wrote at the moment&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import os
from ftplib import FTP
ftp = FTP('??????')
ftp.login('??????','??????')
ftp.cwd('USBDISK2-0-01')
ftp.cwd('Progen')
count = 0
for root, dirs, files in os.walk('/home/anne/Test2'):
&amp;nbsp;&amp;nbsp;&amp;nbsp; for fname in files:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; full_fname = os.path.join(root, fname)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftp.storbinary('STOR ' + fname, open(full_fname, 'rb'))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; count += 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(fname + ' correct')
ftp.quit()
print('Totaal: ' + str(count) + ' bestanden')
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code only upload the data from directory Test2 to the ftp server. This part is working perfectly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I want to check if the current file is on the ftp server. Therefore I wrote this script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
import os
from ftplib import FTP
from datetime import datetime
import time
ftp = FTP('???????')
ftp.login('??????','???????')
ftp.cwd('USBDISK2-0-01')
ftp.cwd('Progen')

ftp.retrlines('LIST')

filenames = []
ftp.retrlines('NLST', filenames.append)
for filename in filenames:
&amp;nbsp;&amp;nbsp;&amp;nbsp; datetimeftp = ftp.sendcmd('MDTM ' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp; datetimepc = os.path.getmtime('/home/anne/Test2/' + filename)
&amp;nbsp;&amp;nbsp;&amp;nbsp; modifiedTimeFtp = datetime.strptime(datetimeftp[4:], "%Y%m%d%H%M%S").strftime("%d %b %Y %H:%M:%S")
&amp;nbsp;&amp;nbsp;&amp;nbsp; modifiedTimePc = datetime.fromtimestamp(datetimepc).strftime("%d %b %Y %H:%M:%S")
&amp;nbsp;&amp;nbsp;&amp;nbsp; if modifiedTimeFtp &amp;gt; modifiedTimePc:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimeFtp
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimePc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "FTP file is recent"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "-------"
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimeFtp
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print modifiedTimePc
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Local file is recent"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "-------"
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output of this code is:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-rwxrwxrwx 1 ftp ftp 67 Mar 13 18:59 test&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;13 Mar 2014 17:59:45&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;13 Mar 2014 18:26:47&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Local file is recent&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I think is really strange is that the file on the ftpserver is 18:59 but the MDTM command is giving me 17:59. I thought that the ftpserver had a wrong timezone but the timezone on the ftpserver and my computer are the same. Can someone explain to me what I am doing wrong here?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2014 17:13:57 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/ftplib-datetime/m-p/674024#M52124</guid>
      <dc:creator>annekleyheeg</dc:creator>
      <dc:date>2014-03-13T17:13:57Z</dc:date>
    </item>
  </channel>
</rss>

