with open(target_file_name, "w", newline="\n") as f:
f.write(content)
newline controls how universal newlines works (it only applies to text
mode). It can be None, '', '\n', '\r', and '\r\n'. It works as
follows:
* On input, if newline is None, universal newlines mode is
enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
these are translated into '\n' before being returned to the
caller. If it is '', universal newline mode is enabled, but line
endings are returned to the caller untranslated. If it has any of
the other legal values, input lines are only terminated by the given
string, and the line ending is returned to the caller untranslated.
* On output, if newline is None, any '\n' characters written are
translated to the system default line separator, os.linesep. If
newline is '' or '\n', no translation takes place. If newline is any
of the other legal values, any '\n' characters written are translated
to the given string.
注意,如果没有设置newline,python在windows系统里面会将字符串里面的\n 写成文件里面 的\r\n,
而且,还会在读文件的时候把\r\n读成字符串里面的\n。
这种自作主张的默认操作会造成linux系统上的脚本文件无法被bash识别。
cat -A xx 可以在linux里面显示这个\r字符。