Python 即使在写入文件后,文件末尾也没有换行符

Python 即使在写入文件后,文件末尾也没有换行符,python,Python,我有上面的代码,它清楚地在我正在编辑的文件中写了一个换行符。当我尝试使用该文件时,另一个脚本不会执行该行,因为文件末尾没有换行符。如果我复制文件,然后在vi中打开它,然后保存它,vi会添加一个换行符,文件的行会正确执行。如果我在未保存在vi中的文件和保存在vi中的文件之间运行diff,我会得到一条消息,即在文件末尾没有换行符。我正在Ubuntu服务器Xenial上使用Python 2.7.12 试试看: # Create strings for preparation of file writi

我有上面的代码,它清楚地在我正在编辑的文件中写了一个换行符。当我尝试使用该文件时,另一个脚本不会执行该行,因为文件末尾没有换行符。如果我复制文件,然后在vi中打开它,然后保存它,vi会添加一个换行符,文件的行会正确执行。如果我在未保存在vi中的文件和保存在vi中的文件之间运行diff,我会得到一条消息,即在文件末尾没有换行符。我正在Ubuntu服务器Xenial上使用Python 2.7.12

试试看:

# Create strings for preparation of file writing
s = ";"
seq = (risd41Email, risd41Pass, rimsd41Email, rimsd41Pass);
textString = s.join(seq);

# Create file, write contents, move to usertxtfiles dir
with open(filename, "w") as text_file:
    text_file.write(str(textString))
    text_file.write('\n')

os.rename(fileMigPath, fileDestPath)

这应该管用

hextump-Cv fileDestPath
的输出是什么。。。。00000000 6d 69 6b 65 2e 6d 61 63 40 6f 6c 64 64 6f 6d 61 |迈克。mac@olddoma|000000 1069 6e 2e 6f 72 67 3b 6e 6f 74 61 70 61 73 77|in.org;notapassw|000000206f72643b6d696b652e6d6163406e6577 | ord;迈克。mac@new|000000 30 64 6f 6d 61 69 6e 2e 6f 72 67 3b 6e 6f 74 61 6e | domain.org;没有| 000000 40 65 77 70 61 73 73 0a | ewpass。| 000000 47正如您所看到的,换行符在那里(末尾的
0a
)。由于我从未理解的原因,
vi
在编辑文件时不显示最后一行换行符。这可能有用。
    text_file.write('\n\n')