Chr*_*ris 14 python windows eol
我正在使用python将一系列SQL语句写入文件.模板字符串如下所示:
store_insert = '\tinsert stores (storenum, ...) values (\'%s\', ...)'
Run Code Online (Sandbox Code Playgroud)
我正在写这样的文件:
for line in source:
line = line.rstrip()
fields = line.split('\t')
script.write(store_insert % tuple(fields))
script.write(os.linesep)
Run Code Online (Sandbox Code Playgroud)
但是,在结果输出中,我看到\ r \n\r \n在每一行的末尾,而不是我期望的\ r \n.为什么?
使用Python 3
open()
引入了新参数newline
,该参数允许指定任何\n
将被转换为的字符串.
传递空字符串参数newline=''
会禁用转换,保留新行char.仅适用于文本模式.
在输出时,如果换行为None,则写入的任何'\n'字符都将转换为系统默认行分隔符os.linesep.如果换行是'',则不进行翻译.如果换行符是任何其他合法值,则写入的任何"\n"字符都将转换为给定的字符串.
文本文件在不同的操作系统上具有不同的行结束符,但使用具有一致的行结束符的字符串很方便。Python 继承了 C 的约定,'\n'
即用作通用行结束字符,并在必要时依赖文件读写函数进行转换。如果文件以默认text
模式打开,则读取和写入函数知道执行此操作。如果b
在打开文件时将字符添加到模式字符串中,则会跳过此翻译。
归档时间: |
|
查看次数: |
27228 次 |
最近记录: |