1

我正在编写一个 Python 脚本,它将把一堆文件上传到一个 FTP 站点。要检查文件是否已更改,我正在比较文件大小。问题是,我上传的文件有 \r\n 行结尾,但通过 FTP(ascii 模式到 Linux 机器)传输会转换为 \n 行结尾。显然我在这个过程中丢失了一堆字节,所以我不能再比较文件大小了。

我不确定在这里进行的最佳方式。在检查文件大小时即时从 \r\n 转换为 \n?以二进制模式上传所有内容?停止比较文件大小?

4

2 回答 2

1

我不会根据文件大小检查文件是否已更改。由于它是 ascii 文本,因此该文件可能已更改并且仍然具有完全相同的字节数。

于 2010-01-29T21:39:52.630 回答
1

使用文件大小是一个坏主意,除非它们只有在更改时才能增长(但通常情况并非如此,除非它们是日志文件或其他东西)。

一种选择是跟踪每个文件(也可以上传到 ftp 服务器)的校验和(通常使用 md5sum)。如果校验和与主校验和文件中的内容匹配,则没有任何更改,否则上传更改的文件并更新该文件的 md5sum。

于 2010-01-29T21:42:52.040 回答