我正在开发一个Python脚本,它会将一堆文件上传到FTP站点。要检查文件是否已更改,我正在比较文件大小。问题是,我上传的文件有\ r \ n行结尾,但通过FTP(ascii模式转换到Linux框)转换为\ n行结尾。显然我在这个过程中丢失了一大堆字节,所以我再也无法比较文件大小了。
我不确定在这里继续前进的最佳方式。检查文件大小时,从\ r \ n转换为\ n?以二进制模式上传一切?停止比较文件大小?
答案 0 :(得分:1)
我不会根据文件大小检查文件是否已更改。由于它是ascii文本,因此文件可能已更改,但仍具有完全相同的字节数。
答案 1 :(得分:1)
使用文件大小是一个坏主意,除非它们只有在变化时才会增长(通常情况并非如此,除非它们是日志文件或其他东西)。
一个选项是跟踪每个文件的校验和(md5sum通常是使用的)(也可以上传到ftp服务器)。如果校验和与主校验和文件中的校验和匹配,则没有任何更改,否则上载更改的文件并更新该文件的md5sum。