Python字符串打印格式化
我很新编程& Python。目前仍在开展我的第一个项目。我在一周前从这个论坛上得到了一些帮助,但是现在我被卡在了程序的另一部分,所以我需要一些独家帮助我再次出来:-)Python字符串打印格式化
在这示例我有2个文件keyfile.dat
,其中包含整个ASCII字符集,每行一个字符。它们是实际的字符,而不是代码。
test.txt
像索引文件一样工作。每行包含一个数字,指向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去我的知识删除空格,回车等。因此,如果我读回车&然后尝试打印它,它会被剥离,因为我的打印staryment使用.strip。
使用with
语句处理文件,因为它会自动关闭你的文件:
with open('keyfile.dat') as f, open('test.txt') as i:
index = [int(line) for line in i) #apply int() here
keyfile = f.readlines()
for ind in index:
line = keyfile[ind]
if len(line) > 1:
print line[:-1],
elif len(line) == 1:
print line,
嗨Ashwini,只打印每行1个字符,仍然排除空格,回车等。谢谢你的答复,但!克林顿。 –
@ user2490853请将问题主体中的'keyfile'和'test'文件发布出去。 –
抱歉,在我第一次阅读它时没有看到您的所有代码。我会再试一次:-) –
你最好使用with语句:'开放的( 'keyfile.dat')为f:开放('test.txt')作为我:'而不是'open' /'close'。 – zmo