添加'\n';到Python中打开的文件的每一行

添加'\n';到Python中打开的文件的每一行,python,Python,我有一些东西要用Python与邮件一起发送,我想在邮件正文中添加内容文件 问题是要将'\n'添加到每一行。。。我做了一些测试,但每次它都会在每个字母后面放置“\n”,而不是行 以下是要添加到邮件中的文件(tests.new): 这是我的剧本: #!/usr/bin/env python3 newFile = open('tests.new','r') tNew = newFile.read() # mail mail = open('mail.txt', 'w', encoding='utf8'

我有一些东西要用Python与邮件一起发送,我想在邮件正文中添加内容文件

问题是要将
'\n'
添加到每一行。。。我做了一些测试,但每次它都会在每个字母后面放置
“\n”
,而不是行

以下是要添加到邮件中的文件(tests.new):

这是我的剧本:

#!/usr/bin/env python3
newFile = open('tests.new','r')
tNew = newFile.read()
# mail
mail = open('mail.txt', 'w', encoding='utf8')
mail.write("New files in module \n")
# BAD PART
i = len(tNew)
z = 0
while z < i:
        mail.write(str(tNew[z].split('\n')))
        z += 1
        mail.close()
#/usr/bin/env蟒蛇3
newFile=open('tests.new','r')
tNew=newFile.read()
#邮寄
mail=open('mail.txt','w',encoding='utf8')
mail.write(“模块中的新文件\n”)
#坏处
i=len(tNew)
z=0
而z
脚本的结尾(在
#BAD PART
之后)是我做的测试之一。它没有义务这样做

如果有人能帮我吗


谢谢

您的问题是
newFile.read()
读取整个输入文件。然后在
循环中逐字节迭代它,并在每个字符后追加一个换行符。
使用新文件中的
行:
节迭代输入文件中的行

另外,您的
mail.close()
位置不正确。最好使用带有open(“somefile.txt”)的
作为ifile:
节,因为这样可以在块结束后正确关闭文件

#!/usr/bin/env python3
with open('tests.new','r') as newFile: #this autocloses the file at the end of the block
    with open('mail.txt', 'w', encoding='utf8') as mail: #same
        mail.write("New files in module \n")
        for line in newFile: #iterate over lines in the inputfile instead of over characters
            mail.write("{}\n".format(line))

您的问题是
newFile.read()
读取整个输入文件。然后在
循环中逐字节迭代它,并在每个字符后追加一个换行符。
使用新文件中的
行:
节迭代输入文件中的行

另外,您的
mail.close()
位置不正确。最好使用带有open(“somefile.txt”)的
作为ifile:
节,因为这样可以在块结束后正确关闭文件

#!/usr/bin/env python3
with open('tests.new','r') as newFile: #this autocloses the file at the end of the block
    with open('mail.txt', 'w', encoding='utf8') as mail: #same
        mail.write("New files in module \n")
        for line in newFile: #iterate over lines in the inputfile instead of over characters
            mail.write("{}\n".format(line))

您的问题是
newFile.read()
读取整个输入文件。然后在
循环中逐字节迭代它,并在每个字符后追加一个换行符。
使用新文件中的
行:
节迭代输入文件中的行

另外,您的
mail.close()
位置不正确。最好使用带有open(“somefile.txt”)的
作为ifile:
节,因为这样可以在块结束后正确关闭文件

#!/usr/bin/env python3
with open('tests.new','r') as newFile: #this autocloses the file at the end of the block
    with open('mail.txt', 'w', encoding='utf8') as mail: #same
        mail.write("New files in module \n")
        for line in newFile: #iterate over lines in the inputfile instead of over characters
            mail.write("{}\n".format(line))

您的问题是
newFile.read()
读取整个输入文件。然后在
循环中逐字节迭代它,并在每个字符后追加一个换行符。
使用新文件中的
行:
节迭代输入文件中的行

另外,您的
mail.close()
位置不正确。最好使用带有open(“somefile.txt”)的
作为ifile:
节,因为这样可以在块结束后正确关闭文件

#!/usr/bin/env python3
with open('tests.new','r') as newFile: #this autocloses the file at the end of the block
    with open('mail.txt', 'w', encoding='utf8') as mail: #same
        mail.write("New files in module \n")
        for line in newFile: #iterate over lines in the inputfile instead of over characters
            mail.write("{}\n".format(line))
坏零件问题:

1)
tNew[z]
返回单个字符,而不是行。您需要先获取行列表

2) 您可以关闭循环中的
邮件
文件,而不再打开它

因此,正确的代码必须是:

#!/usr/bin/env python3
newFile = open('tests.new','r')
tNew = newFile.read()
# mail
mail = open('mail.txt', 'w', encoding='utf8')
mail.write("New files in module \n")

# BAD PART - FIXED
lines = tNew.split('\n')
i = len(lines)
z = 0
while z < i:
    mail.write(str(lines[z] + '\n'))
    z += 1
mail.close()
newFile.close()
或者更好:

for line in open('tests.new', 'r'):
    mail.write(line + '\n')
您不需要使用
z
计数器和
i

坏零件问题:

1)
tNew[z]
返回单个字符,而不是行。您需要先获取行列表

2) 您可以关闭循环中的
邮件
文件,而不再打开它

因此,正确的代码必须是:

#!/usr/bin/env python3
newFile = open('tests.new','r')
tNew = newFile.read()
# mail
mail = open('mail.txt', 'w', encoding='utf8')
mail.write("New files in module \n")

# BAD PART - FIXED
lines = tNew.split('\n')
i = len(lines)
z = 0
while z < i:
    mail.write(str(lines[z] + '\n'))
    z += 1
mail.close()
newFile.close()
或者更好:

for line in open('tests.new', 'r'):
    mail.write(line + '\n')
您不需要使用
z
计数器和
i

坏零件问题:

1)
tNew[z]
返回单个字符,而不是行。您需要先获取行列表

2) 您可以关闭循环中的
邮件
文件,而不再打开它

因此,正确的代码必须是:

#!/usr/bin/env python3
newFile = open('tests.new','r')
tNew = newFile.read()
# mail
mail = open('mail.txt', 'w', encoding='utf8')
mail.write("New files in module \n")

# BAD PART - FIXED
lines = tNew.split('\n')
i = len(lines)
z = 0
while z < i:
    mail.write(str(lines[z] + '\n'))
    z += 1
mail.close()
newFile.close()
或者更好:

for line in open('tests.new', 'r'):
    mail.write(line + '\n')
您不需要使用
z
计数器和
i

坏零件问题:

1)
tNew[z]
返回单个字符,而不是行。您需要先获取行列表

2) 您可以关闭循环中的
邮件
文件,而不再打开它

因此,正确的代码必须是:

#!/usr/bin/env python3
newFile = open('tests.new','r')
tNew = newFile.read()
# mail
mail = open('mail.txt', 'w', encoding='utf8')
mail.write("New files in module \n")

# BAD PART - FIXED
lines = tNew.split('\n')
i = len(lines)
z = 0
while z < i:
    mail.write(str(lines[z] + '\n'))
    z += 1
mail.close()
newFile.close()
或者更好:

for line in open('tests.new', 'r'):
    mail.write(line + '\n')

并且您不需要使用
z
计数器和
i

是否要在输出文件中使用重复的行终止符?关闭
测试。新建
文件。文件指针保持打开状态。是否要在输出文件中使用重复的行终止符?请关闭
tests.new
文件。文件指针保持打开状态。是否要在输出文件中使用重复的行终止符?请关闭
tests.new
文件。文件指针保持打开状态。是否要在输出文件中使用重复的行终止符?请关闭
tests.new
文件。您将文件指针保持打开状态。
对于tNew.split('\n'):mail.write(line+'\n')
效果非常好。但是现在Outlook不会显示换行^^。感谢您对tNew.split('\n'):mail.write(line+'\n')
中的行提供帮助。但是现在Outlook不会显示换行^^。感谢您对tNew.split('\n'):mail.write(line+'\n')
中的行提供帮助。但是现在Outlook不会显示换行^^。感谢您对tNew.split('\n'):mail.write(line+'\n')
中的行提供帮助。但是现在Outlook不会显示换行^^。谢谢你的帮助