Python ftplib 在将文件上传到 FTP 服务器期间向 txt 文件添加新行

Python ftplib add new line to txt file during upload file to FTP server

我使用以下代码以 ASCII 模式将 txt 文件上传到 FTP 服务器

import glob
import os
import hashlib
from ftplib import FTP 

server = '1.1.1.1'
login = 'user'
password = 'password'
path = './test_files/'
file_mask = '*.txt'

def upload_to_ftp(srv, uname, pwd, file_name):
    ftp = FTP(srv, uname, pwd)    
    ftp.cwd('Pava')    
    file = open(path+file_name, 'rb')
    ftp.storlines('STOR '+file_name, file)
    size = ftp.size(file_name)           
    ftp.close()
    file.close()
    print (size)

def local_size_check(file_name):
    file_size = os.stat(path+file_name)
    print (file_size.st_size)


file_to_upload = glob.glob1(path, file_mask)
for i in file_to_upload:
    try:
        os.rename(path+i, path+i)
    except OSError as e:
        print ('Access-error on file ' + i + ' ! \n' + str(e))
    else:
        upload_to_ftp(server, login, password, i)
        local_size_check(i)

这两个函数的输出是: 78 76 然后我从 ftp 下载了文件,发现在 FTP 传输期间在文件末尾添加了新行。 local and remote file screens

请帮忙解决这个问题。 顺便说一句,如果使用二进制模式换行不要添加

您应该以二进制模式上传您的文件,这样它就不会受到服务器文本解释的影响。

变化:

ftp.storlines('STOR '+file_name, file)

至:

ftp.storbinary('STOR '+file_name, file)