多年来,我一直在使用一个非常简单的批处理文件从 UNIX ftp 服务器下载数百万个文件
login
passwd
ascii
prompt n
cd to the right directory
get some_file
get another_file
cd to the next directory
repeat the pattern
这样做的好处是它很简单,所有文件都带有 Window 的换行符,因此这些文件可以与我现有的程序一起使用。由于我的路由器发生了一些变化,我不得不编写一个 Python 脚本来提取文件——我的第一个脚本版本非常简单——但它可以工作
for key in key_filings:
for filing in key_filings[key]:
remote_directory = '/foo/bar/' + key + '/' + filing['key_number']
ftp.cwd(remote_directory)
text_file = filing['txt']
ftp.retrlines('RETR '+ text_file, open(save_dir + text_file,'w').writelines)
hdr_file = filing['hdr']
ftp.retrlines('RETR ' + hdr_file, open(save_dir + hdr_file,'w').writelines)
但是,这些文件没有任何明显的换行符。这些文件存储在 unix 系统中。在我使用 Windows CMD shell 下载文件之前,换行符就在那里。我已经尝试发送 ASCII 命令,但正如预期的那样没有任何效果。
由于我的某些代码处理是基于行的,因此我能够访问最初存在的换行符至关重要。