【发布时间】:2013-06-22 14:26:05
【问题描述】:
我对编程和 Python 非常陌生。目前仍在开发我的第一个程序。大约一周前,我从这个论坛获得了一些帮助,但现在我被困在程序的另一部分,所以我需要一些善意的人再次帮助我:-)
在此示例中,我有 2 个文件 keyfile.dat,其中包含整个 ascii 字符集,每行一个字符。它们是实际的字符,而不是代码。
test.txt 像索引文件一样工作。每行包含一个数字,该数字指向keyfile.dat 中的行号,而keyfile.dat 又包含一个ascii 字符。下面的代码打印字母、逗号、问号等字母。但是它不打印空格、回车等。我想这是因为我在print 语句中使用了str.strip。如果我不使用该命令,除非读取回车符,否则不会在同一行打印每个字符,而是将每个字符打印在单独的行上。基本上,程序的这一部分应该打印它所指向的任何字符,不管它是什么,并完全按原样打印,就像它被输入一样。
---编辑--- 代码已删除
有什么想法吗? & 提前感谢您的任何回复。克林顿。
keyfile.dat 的示例内容
8
e
�
�
T
�
�
�
U
^V
�
^]
b
�
�
�
�
�
F
内容 test.txt:
14
203
163
38
52
163
38
188
231
11
38
231
242
208
74
163
38
163
231
使用我上面的代码输出:
T h i s , i s a t e s t ! O r i s i t ?
你可以看到单词之间没有空格,在 !应该有回车。
我个人认为是因为我的印刷声明。我需要使用 .strip ,否则从 keyfile.dat 读取的每个字符都会打印在新行上。据我所知,.strip 会删除空格、回车等。因此,如果我读取回车然后尝试打印它,它会被删除,因为我的打印功能使用 .strip。
【问题讨论】:
-
你最好使用 with 语句:
with open('keyfile.dat') as f: with open('test.txt') as i:而不是open/close。
标签: python string printing formatting