逐字符向后打印txt文件

Print txt file backwards, character by character

所以,我有一个包含单词 'QWE' 的 txt 文件。我正在尝试将其反转打印,但 [::-1} 在这种情况下不起作用。

file = open('10asciitxt.txt', 'r') 
      
    while 1: 
      
    # read by character 
    char = file.read(1)
    if not char:  
        break  
    res=128-ord(char)  
    print(char," = ",ord(char),"| 128 - ",ord(char)," = ",res," Res: ",chr(res))
file.close()

输出:

Q  =  81 | 128 -  81  =  47  Res:  /
W  =  87 | 128 -  87  =  41  Res:  )
E  =  69 | 128 -  69  =  59  Res:  ;

预期输出:

E  =  69 | 128 -  69  =  59  Res:  ;
W  =  87 | 128 -  87  =  41  Res:  )
Q  =  81 | 128 -  81  =  47  Res:  /

您可以一次读取整个文件,然后向后迭代

file = open('10asciitxt.txt', 'r') 

file_contents = file.readlines()

            #### Reverse File Contents
for line in file_contents[::-1]:
    for char in line:
        if not char.isspace():
           res=128-ord(char)  
           print(char," = ",ord(char),"| 128 - ",ord(char)," = ",res," Res: ",chr(res))

file.close()

使用 readlines() 和 read() 有助于将文本文件保存在列表中,然后您可以简单地反转它。

file = open('sample.txt', 'r') 
ls = file.readlines() #creates list of lines
ls.reverse() # directly reverse it
print('/n'.join(ls)) #join it by specific operator

参考:https://www.w3schools.com/python/ref_file_readlines.asp

How to read a file in reverse order? 可以提供帮助。

或者如果文件不大,也可以将文件的所有字符读入一个列表,如下:

chars = [char for char in open('10asciitxt.txt').read()]
for char in chars[::-1]:
    i = ord(char)
    res = 128 - i  
    print(char, " = ", i, "| 128 - ", i, " = " , res, " Res: ", chr(res))