Python在变量之后插入回车符和换行符,而不仅仅是换行符

Python在变量之后插入回车符和换行符,而不仅仅是换行符,python,return,line,feed,Python,Return,Line,Feed,我已经创建了一个python脚本来输出AAAA-ZZZZ等中每1-4个字符的字母组合 它工作得很好,但是我只需要在打印变量的末尾插入换行符,因为我将它用作另一个脚本中使用的单词列表 我尝试同时使用\r和\n,但是使用\n在末尾插入回车符和换行符(例如AAAA CR LF),仅使用\r插入回车符(例如AAAA CR) 我的问题是,是否可以只在末尾插入换行符,或者由于python的限制,这是不可能的?我曾尝试使用记事本手动替换每个字符,这是可行的,但这只是修补问题,不实用 非常感谢您的帮助 impo

我已经创建了一个python脚本来输出AAAA-ZZZZ等中每1-4个字符的字母组合

它工作得很好,但是我只需要在打印变量的末尾插入换行符,因为我将它用作另一个脚本中使用的单词列表

我尝试同时使用\r和\n,但是使用\n在末尾插入回车符和换行符(例如AAAA CR LF),仅使用\r插入回车符(例如AAAA CR)

我的问题是,是否可以只在末尾插入换行符,或者由于python的限制,这是不可能的?我曾尝试使用记事本手动替换每个字符,这是可行的,但这只是修补问题,不实用

非常感谢您的帮助

import string
alpha = string.ascii_uppercase
w=(a+b+c+d for a in alpha for b in alpha for c in alpha for d in alpha) 
x=(a+b+c for a in alpha for b in alpha for c in alpha) 
y=(a+b for a in alpha for b in alpha) 
z=(a for a in alpha ) 
with open("Output.txt", "w") as text_file: 
for i in [w, x, y, z]:
    for k in i:
        print("{}\r".format(k), file=text_file, end='')
这里的问题是线路

print("{}\r".format(k), file=text_file, end='')

对于以文本模式(默认)打开的文件,python将/n解释为等同于os.linesep,Windows上的os.linesep为[CR][LF],反之亦然

import os
print(os.linesep)
退房

要防止出现这种情况,请以二进制模式打开该文件

with open("Output.txt", "wb") as my_file: 
这告诉Python将文件视为一个普通的字节序列,您会发现\n被视为一个换行字符。

尝试:

with open("Output.txt", "bw") as text_file: 
在Python3中,print()基本上会在每次执行时添加新行。为此,我建议您使用sys模块的write函数。我在制作下载条时也遇到了同样的问题

代码-


这应该可以解决你的问题。

你看过这个吗?这可能是windows的问题。嘿,在发布这个问题之前,我确实看了这个问题,但找不到解决方案,在print命令的末尾附加flush参数(flush=True)似乎没有造成任何差异。\n应该只打印换行符,而不是同时打印回车符和换行符,对吗?您好,我现在得到一个“TypeError:bytes-like-object是必需的,而不是'str'在写入文件时”,我假设这与我使用字符串的事实有关?我没有注意到您使用的是Python 3,这意味着以二进制模式打开文件会将其读取为字节对象,而不是字符串。这使事情复杂化了。我担心,结合Python对您想要的文本文件的平台格式和Python 3字节模式的隐式神奇强制,您会真正理解。您需要使用text_file.write()对其进行写入。您好,我实现了sys.stdout.write to output to file,完全消除了打印的使用,但是它仍然执行相同的操作,或者只是使用\n的CR,或者使用\r的CR和LF。不走运:(使用\n同时插入回车符和换行符,其中应该只插入带换行符的换行符\n
import sys
sys.stdout.write('\r')
sys.stdout.flush()