2015-03-13 290 views
2

我試圖使用Python將CSV文件加載到Amazon S3。我需要知道CSV文件的修改時間。我使用ftplib將FTP與Python連接(2.7)。如何使用Python獲取FTP文件的修改時間ftplib

+0

旅途愉快見'os.stat'爲3日期時間戳。請注意,修改時間可能意味着不同系統上的不同內容。 – cdarke 2015-03-13 07:34:35

回答

6

雖然您可以通過MLSTMDTM命令通過FTP檢索單個文件的時間戳,但ftplib均不支持。由庫明確支持


你唯一的選擇是:

  • 檢索使用MLSDmlsd法)
  • 搜索文件返回的集合你想
  • 一個完整的目錄列表搜索文件的事實收集modify事實
  • 根據規範解析它,YYYYMMDDHHMMSS[.sss]

有關詳細信息,請參閱RFC 3659,特別是:


當然你也可以實現對MLSTMDTM您自己使用ftp.sendcmd

參見:


注意通過MLSTMLSDMDTM返回時間是UTC(除非服務器壞了)。所以你可能需要糾正他們爲您的當地時區。

再次,請參閱RFC 3659 2.3. Times部分:

時間值總是以UTC(GMT)表示,在公曆 日曆不管可能是什麼日曆中使用的日期 和時間表示在服務器PI的位置。

+0

感謝您的回覆! 我正在使用:「ftp.sendcmd('MDTM'+文件名)」 但它不同於我的時間戳。在ftp最後修改時間是01:00,但是當我嘗試使用python進行檢查時,它是23:00。我該如何解決這個問題,或者爲我的代碼增加2個小時? – Uygar 2015-03-13 08:06:48

+0

查看我的回答更新 – 2015-03-13 08:09:41

+0

我檢查了我的時區,一切正常。當我試圖用python檢查當前日期時,這是真的。但是FTP修改時間仍然不正確。當我試圖檢查FTP時,它與我的國家一樣,是真的。 – Uygar 2015-03-13 09:19:10

-3

當我想更改文件修改時間時,我在控制檯上使用FTP客戶端。 登錄到遠程FTP ftp ftp.dic。COM

  • CD命令去正確的目錄
  • SITE命令將擴展命令模式
  • UTIME somefile.txt 20050101123000 20050101123000 20050101123000 UTC

變化的訪問時間,修改時間,它的時間在2005-01-01 12:30:00 somefile.txt創建一個目錄

完整的示例:

網站UTIME somefile.txt 20150331122000 20150331122000 20150331122000 UTC

請隨時坐下來,祝你在時間:)

+0

當然你可以在任何ftp客戶端使用這個命令。 – Adam111p 2015-04-06 08:58:37

相關問題