为什么python会在新打开的文件末尾附加一个模(%)运算符?
我在python的with语句中遇到了一些奇怪的行为,我希望有人能为我澄清发生了什么为什么python会在新打开的文件末尾附加一个模(%)运算符?,python,file,append,modulo,Python,File,Append,Modulo,我在python的with语句中遇到了一些奇怪的行为,我希望有人能为我澄清发生了什么 with open('hello.py', 'ab+') as f: f.write('hello=3') 基本上,我正在尝试创建/打开一个python文件,并向其附加一个新的变量声明。但是cat的输出告诉我: hello=3% 如果我使用的不是上述代码,而是: with open('hello.py', 'ab+') as f: f.write('hello=3\n') 模运算符消失。给
with open('hello.py', 'ab+') as f:
f.write('hello=3')
基本上,我正在尝试创建/打开一个python文件,并向其附加一个新的变量声明。但是cat的输出告诉我:
hello=3%
如果我使用的不是上述代码,而是:
with open('hello.py', 'ab+') as f:
f.write('hello=3\n')
模运算符消失。给出了什么?这是shell提示符的
%
,添加新行将其放在下一行。它看起来很“奇怪”,因为它与shell提示符位于同一行
一些shell,如
sh
和csh
在打印新提示之前不添加新行。从%
shell提示符看,这好像是csh
(c-shell)我无法重现这个问题。哇,我没有意识到这一点。不过我使用的是ZSH,我确实得到了一个新提示的换行符。我想可能与我的zsh设置有冲突?谢谢大家!@Psycheas:Unix假定文件文本文件以\n
-当您cat hello.py
时,cat只打印文件中的换行符。这将导致在输出的最后一行(假定为空)追加提示。啊,这是有意义的。非常感谢。