Python标准输出在emacs中显示隐藏字符

2024-06-16 10:02:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个python函数来生成list个单词。首先,它读取由新行分隔的单词组成的文件。根据单词的不同,它要么将其插入list,要么插入一个由制表符表示的空格。以下是代码的相关部分:

xclusives1xclusives2dupslists

generator是包含函数的类的实例。你知道吗

def xfile1(self):
        for item1 in self.lines1:
            for item2 in self.lines2:
                if item1 == item2:
                    self.xclusives1.append("\t")
                    self.xclusives2.append("\t")
                    self.dups.append(item1)
                    break
            self.xclusives1.append(item1)
            self.xclusives2.append("\t")
            self.dups.append("\t")
            ...
            ...
            ...
            ...
            print generator.xclusives2

如您所见,我在list后面附加了文件中的选项卡和项。我希望输出转到一个文件,所以在命令行上,我执行以下操作:

comm.py是程序名,testtest2是测试输入。你知道吗

$python comm.py test test2 >commOut

在emacs中打开输出文件会得到如下结果:

'\t'、'\t'、'\t'、'一个字\n'、'另一个字\n'、。。。你知道吗

每个list项都用单引号括起来,所有隐藏的字符都显示在emacs上,即使在函数从中获取单词的原始列表中,新行是隐藏的

如何使换行符和制表符显示为正确的隐藏字符?你知道吗


Tags: 文件函数inselfforgenerator单词制表符
1条回答
网友
1楼 · 发布于 2024-06-16 10:02:17

这是因为当您打印列表时,它会打印所有项目的repr。这样你就不会混淆列表[1, '1']['1', 1](其中1是int,'1'是str)

要解决这个问题,如果所有的项目都是字符串,请打印它们,并用', '连接起来

print ', '.join(generator.xclusives2)

或者,如果你还想在字符串周围加引号

print "'" + "', '".join(generator.xclusives2) + "'"

注意str(string) == string。(str('Hello world!') == 'Hello world!')和repr(string) != stringrepr('Hello world!') == "'Hello world!'"

相关问题 更多 >