【发布时间】:2021-04-15 18:30:15
【问题描述】:
Sample Text 1 是我尝试格式化的一些文本的摘录输出(不允许我直接以原始格式粘贴或附加 img)。输出由以下内容生成:
fhandle = open('legalcode.txt')
for line in fhandle:
line = line.strip()
print(repr(line))
hold = input()
我的输出的第 2 行只是空的,看起来我也得到了空字符串?我正在寻找关于第 2 行空白区域的说明以及有关删除空字符串的建议。当前所有搜索结果仅讨论从列表中删除字符串。
提前感谢您的帮助。
编辑 1
如上所述,我已使用以下方法删除“ ”:
fhandle = open('legalcode.txt')
for line in fhandle:
line = line.strip()
line = line.strip('\r')
if line == '':
continue
print(repr(line))
但正如您在Sample Text 2 中看到的那样,倒数第三行仍有一个无法识别的空格。有没有其他显示隐藏字符的方法?
编辑 2
我正在使用的文本文件:https://github.com/Achulhu/Legal-Code-Reformat
原文可见:https://www.ilga.gov/legislation/ilcs/ilcs5.asp?ActID=3992&ChapterID=35
编辑 3
我将@Arseniy 对 [ord] 的建议与当前运行情况进行了整合:
fhandle = open('legalcode.txt','r')
for line in fhandle:
line = line.strip()
line = line.strip('\r')
if line == '':
continue
print(repr(line),[ord(c) for c in line])
但是,[ord] 没有为该空间提供标识 (Sample Text 3)。为了澄清起见,我使用的是 Windows 操作系统并从命令提示符中调用它。它是用 ATOM 编写的,我也尝试通过 IDLE 运行它,看看是否有什么不同。
【问题讨论】:
-
引号在那里是因为您使用了
repr(),它专门在字符串周围加上引号。如果您不想要这种行为,为什么还要使用repr()? -
Repr() 仅用于向我展示那里的内容。这些空间无论如何都存在。
-
在这些情况下,
line是一个空字符串,因为文件有一个空行。你想从实际文件中删除空白行,还是在循环中跳过打印它们? -
最终,我会将它们删除,但现在我只是想了解输出的第 2 行和第 4 行之间的区别。我添加了: *** if line == ' ': continue *** 这解决了第 4 行,但它不能解决示例文本的第 2 行。 :(
-
第一行看起来像是被截断了——它以双引号结尾,但不是以双引号开头。此外,第二行根本没有引号,这与
repr()不一致。你确定截图准确吗?