Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在文件末尾写入新行_Python_Numpy_Text_Newline - Fatal编程技术网

Python 在文件末尾写入新行

Python 在文件末尾写入新行,python,numpy,text,newline,Python,Numpy,Text,Newline,我正在使用python中的numpy数组。我想将数组及其属性打印为txt输出。我希望文本输出以空行结束。我该怎么做 我试过: # Create a text document of the output with open("demo_numpy.txt","w") as text: text.write('\n'.join(map(str, [a,shape,size,itemsize,ndim,dtype])) + '\n') 而且: # Create a text documen

我正在使用python中的numpy数组。我想将数组及其属性打印为txt输出。我希望文本输出以空行结束。我该怎么做

我试过:

# Create a text document of the output
with open("demo_numpy.txt","w") as text:
    text.write('\n'.join(map(str, [a,shape,size,itemsize,ndim,dtype])) + '\n')
而且:

# Create a text document of the output
with open("demo_numpy.txt","w") as text:
    text.write('\n'.join(map(str, [a,shape,size,itemsize,ndim,dtype])))
    text.write('\n')
但是,当我在GitHub desktop中打开该文件时,仍然会显示文件的最后一行是“dtype”

当您执行
“\n”时。join(…)
您将获得以下形式的字符串:

abc\ndef\nghi\nhjk
--换句话说,它不会以
\n
结尾

如果您的代码编写了另一个
\n
,则字符串的格式如下

abc\ndef\nghi\nhjk\n
但这并不会在文件的末尾放一个空行,因为文本文件应该有以
\n
结尾的行。这就是Posix标准所说的

因此,您需要另一个
\n
,以便文件的最后两行

hjk\n
\n

如果您要求Python读取最后一个尾随
\n
缺失的文本文件,Python将不会阻塞。但它也不会将文本文件中的单个尾随
\n
视为空行。GitHub也会这样做,这一点我并不感到惊讶。

这是通过使用Python 3.x print函数解决的,该函数会自动在每个print语句的末尾插入一行新行

代码如下:

with open("demo_numpy.txt","w") as text:    
    print(a, file = text)
    text.close()
  • 注意-显然,在处理字符串值而不是二进制文件时,使用
    print
    函数比使用
    .write
    更合适
在适当的编辑器中打开文件,您将看到文件末尾有一个新行(除非您的GitHub处理程序在提交之前没有自动删除尾随空格)。谢谢,@zwer我查看了它,我相信GitHub删除了尾随空格,这就是为什么我看不到新行的原因-但我相信它在那里。问题是-我如何在适当的文本编辑器中看到空行?通常,编辑器的光标将能够移动到新行,如果它支持显示行号,它也将显示新行的行号。那么,我在问题中发布的第一个代码行是否不正确?是否需要添加另一个“\n”?我认为第一个代码实际上是有效的,它只是一个GitHub删除尾随空格的问题。两个版本都编写了一个以单个
\n
结尾的文件。根据Posix规则,这不会指定空行,因为后面的
\n
终止最后一行。您需要第二个<代码> \n>代码>终止您想要的空白行。我不相信GitHub会删除尾随空格。你不必相信我的话。只需再放一个
\n
试试。这比我写这篇文章所花的时间要少。