避免文件末尾出现新行 - Python
我想在用Python写文本文件的时候,不想在文件末尾加一个换行符。这是我经常遇到的问题,我相信可以很简单地解决。下面是一个例子:
fileout = open('out.txt', 'w')
list = ['a', 'b', 'c', 'd']
for i in list:
fileout.write('%s\n' % (i))
这个代码在文件末尾打印了一个换行符(\n)。我该怎么改我的循环,才能避免这个问题呢?
4 个回答
1
在我看来,文本文件是由一行一行的文字组成的。每一行的结束是通过一个换行符来实现的,而这个换行符的具体形式是根据不同的平台而有所不同的。因此,一个合格的文本文件每一行都必须严格包含一个换行符。
不过,你可以通过两种方式来解决这个问题:一种是对最后一行进行特殊处理,另一种是把整个文件的内容先在内存中构建好,然后以二进制数据的形式写入文件,注意根据你所使用的平台的换行符格式,省略最后一个或两个字节。
2
这里有一个解决方案,它避免了创建一个中间字符串,这在列表很大的时候会很有用。这个方法不再担心文件末尾的换行符,而是把换行符放在要打印的行 之前,除了第一行,这一行是在循环外处理的。
fileout = open('out.txt', 'w')
mylist = ['a', 'b', 'c', 'd']
listiter = iter(mylist)
for first in listiter:
fileout.write(first)
for i in listiter:
fileout.write('\n')
fileout.write(i)
8
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。比如,有人可能会在使用某个函数时,发现它的表现和预期不一样。这种情况可能是因为我们没有完全理解这个函数的用法,或者在使用时没有遵循正确的步骤。
为了帮助大家更好地理解这些问题,很多人会在网上提问,像是在StackOverflow这样的论坛上。这里有很多经验丰富的程序员,他们会分享自己的经验和解决方案,帮助新手们解决遇到的难题。
总之,编程是一条不断学习的道路,遇到问题是很正常的。通过提问和查找资料,我们可以逐渐掌握更多的知识,变得更加熟练。
fileout = open('out.txt', 'w')
list = ['a', 'b', 'c', 'd']
fileout.write('\n'.join(list))