Python:如何以DOS格式通过电子邮件发送附加的Unix文件

Python:如何以DOS格式通过电子邮件发送附加的Unix文件,python,smtplib,Python,Smtplib,在Unix服务器上,我使用python中的smtplib向自己发送电子邮件;该电子邮件还包含一个unix文件附件。我使用outlook client查看电子邮件,打开文件时,由于Unix和DOS格式的差异,文件无法正确显示。 是否使用smtplib以DOS格式发送Unix文件? 我不想使用unix2dos,因为我不想在文件系统上创建/修改文件 根据资深成员的建议编辑问题,以包括修改内容 因为我被要求修改文件,所以我需要知道是否有更简单的方法。我不太精通Python,所以请容忍我。我尝试了以下几种

在Unix服务器上,我使用python中的smtplib向自己发送电子邮件;该电子邮件还包含一个unix文件附件。我使用outlook client查看电子邮件,打开文件时,由于Unix和DOS格式的差异,文件无法正确显示。
是否使用smtplib以DOS格式发送Unix文件?
我不想使用unix2dos,因为我不想在文件系统上创建/修改文件

根据资深成员的建议编辑问题,以包括修改内容

因为我被要求修改文件,所以我需要知道是否有更简单的方法。我不太精通Python,所以请容忍我。我尝试了以下几种变体,但没有一种有效。我的要求是我不想写入文件系统。我想将更改保存到内存中的变量中

import string fo=open(filename,"r") filecontent=fo.readlines() for line in filecontent: line = string.replace(line,"\n","\r\m") 导入字符串 fo=打开(文件名为“r”) filecontent=fo.readlines() 对于文件内容中的行: 行=字符串。替换(行“\n”、“\r\m”)
这只是对您问题的第一个评论的一个变体:

with open(filename, 'r') as f:
    content = f.read().replace('\n', '\r\n')
之后,在变量内容中有。。。已替换换行符的文件内容。此外,使用带有结构的
确保文件在读取后正确关闭


请注意,您有责任确保文件“足够小”以保存在内存中。如果不确定,你可以按照自己的建议逐行阅读。话虽如此,一开始我不太清楚这是怎么回事…

'Hello,world\n'。替换('\n','\r\n')
?或者我遗漏了什么?我附加了一个文件,而不是一个字符串。换言之,“smtplib是否已经提供了将Unix文件转换为DOS格式的函数”而不是文本文件中的换行符,Unix文件和DOS文件之间实际上没有什么区别。这是一段如此基本的代码,因此为其创建函数是愚蠢的。如果您有一个文件,则读取该文件并进行替换。