如何使用Python(在Windows上)写入文件并使用Unix行尾字符?
例如:
f =打开('file.txt','w')
f.write('hello \ n')
f.close()
Python自动替换\n
为\r\n
。
请参阅:现代方式:答案。
现代方式:使用newline =’‘
使用newline=
关键字参数io.open()
可以使用Unix
风格的LF行尾终止符:
import io
f = io.open('file.txt', 'w', newline='\n')
这适用于Python 2.6+。在Python 3中,您还可以使用内置open()
函数的newline=
参数代替io.open()
。
旧方法:二进制模式
防止换行符转换的旧方法(在Python 3中不起作用)是以二进制模式打开文件,以防止换行符的转换:
f = open('file.txt', 'wb') # note the 'b' meaning binary
但在Python 3中,二进制模式将读取字节而不是字符,因此它将无法执行您想要的操作。当您尝试在流上执行字符串I / O时,您可能会获得异常。(例如,“ TypeError:’str’不支持缓冲区接口”)。
以二进制形式打开文件,以防止转换行尾字符:
f = open('file.txt', 'wb')
引用Python手册:
在Windows上,附加到模式的’b’以二进制模式打开文件,因此也有’rb’,’wb’和’r +
b’之类的模式。Windows上的Python区分文本文件和二进制文件。读取或写入数据时,文本文件中的行尾字符会自动更改。这种对文件数据的幕后修改对于ASCII文本文件而言是很好的选择,但它会破坏JPEG或EXE文件中的二进制数据。读写此类文件时,请务必小心使用二进制模式。在Unix上,将’b’附加到该模式没有什么坏处,因此您可以将其独立地用于所有二进制文件。
问题内容: Go是否与Python的多行字符串相似? 如果不是,编写跨多行字符串的首选方式是什么? 问题答案: 根据语言规范,您可以使用原始字符串文字,该字符串由反引号而不是双引号分隔。
我需要将一些模拟数据的行尾转换为Unix格式。我在Win 7上使用原子编辑器。 在网上,我发现一个Atom软件包可以转换行尾,但该软件包说它已被弃用,因为Atom现在将其作为标准功能。 我在Atom中找不到任何这样的标准功能——Atom的留档甚至不知道什么是行尾转换。 “关于Atom”告诉我Atom是v.1.23.3的最新版本 在我看来,这似乎是一个悖论。 不,我不能只用记事本。) 我已经研究了很
我们有一个由多个开发人员在多个操作系统上开发的项目。我们的prettier配置中的字符限制设置为120个字符。我们的windows计算机生成的快照与我们的linux/unix计算机不同。 窗户: 而在我们的linux/unix机器上,快照生成以下行: 对于linux/unix快照,代码在第119列结束,而windows机器在最后几个属性之前产生一个新行。我们使用React,Jest用于测试,esl
问题内容: 我知道您可以通过以下几种方式创建多行字符串: 三引号 级联 转义 我也知道,在字符串前面加上前缀将使它成为原始字符串,对于文件路径很有用。 但是,我有一个长文件路径,该文件路径既跨越多行,又需要是原始字符串。我该怎么做呢? 这有效: 但是由于某些原因,这不是: 为什么只有一个反斜杠? 问题答案: 您需要在每个字符串文字上加一个前缀 否则,第一部分将被解释为原始字符串文字,但字符串的下一
我有一个从 IT 团队获得的数据集。他们有一个他们不愿意改变的自动提取。 文件如下所示(根据要求添加更多行) 1#|#2#|#3#|#4 数据1#|#数据2#|#data3#|#data4 数据1#|#数据2#|#data3#|#data4 cdata1#|#da#ta2#|#data3#|#数据4 (第 4 行,这是我的数据中的 # 搞砸了仅 # 的引号字符的示例) #看起来像是试图成为引号字符
问题内容: 在python中,我们使用反斜杠表示当前语句继续到下一行 例如, 或者简单地说, 可以用Go语言做到这一点吗?谢谢 问题答案: 当然可以,只需将运算符放在最后,例如: 另请注意,不可能在操作员之前中断换行。以下代码 无效 : 该规则在此处和规范中进行了描述。