我已经创建了一个PHP脚本来更新本地目录内的Web服务器。 我将脚本迁移到Python。它大部分工作正常,但在PUT命令后,文件的大小似乎改变。因此,文件的大小与服务器上文件的大小不同。 一旦我从FTP服务器再次下载文件,唯一的区别是CR/LF标记。这让我很恼火,因为相同的脚本正在比较要更新的文件的大小。此外,万一它意味着什么,该脚本完美的PHPvíaftp_put。
from ftplib import FTP ftpserver = "myserver" ftpuser = "myuser" ftppass = "mypwd" locfile = "g:/test/style.css" ftpfile = "/temp/style.css" try: ftp = FTP(ftpserver, ftpuser, ftppass) except: exit ("Cannot connect") f = open (locfile, "r") try: ftp.delete (ftpfile) except: pass # ftp.sendcmd ("TYPE I") # ftp.storlines("STOR %s" % ftpfile, f) ftp.storbinary("STOR %s" % ftpfile, f) f.close() ftp.dir (ftpfile) ftp.quit()有什么建议么?
没有找到相关结果
已邀请:
3 个回复
noptio
赞同来自:
你需要用
rb
以二进制的方式打开locfile吗?yet
赞同来自:
那么如果你在Windows或者* nix环境下使用你的文件属性,你会注意到两种尺寸。一个是扇区大小,一个是实际大小。扇区大小是在硬盘上用尽的扇区数。这是因为两个文件不能与大多数现代文件系统处于同一个扇区,所以如果你的文件占满扇区的一半,那么整个扇区就被标记为已满。 因此,您可能会将扇区文件大小与FTP服务器上的实际文件大小进行比较,反之亦然。
yeum
赞同来自:
无论大小如何,小文件占用文件系统上的整个节点。 我的主机倾向于将所有小文件报告为4kb的ftp文件,但是在一个shell中提供了一个精确的大小,所以它可能是ftp客户端常见的一个“特性”。