有没有办法在没有原始解释的情况下将制表符写为字符? (或如何半生,一半不生)

我正在尝试创建一个系统,该系统将自动(安全地)创建一个具有正好16列的网格,以表示用户可以在输入字段中输入的每个可能的字符;问题在于空白(如制表符,换行等)的打印方式与常规换行符转义序列相同。例如:

    ~(p{][Iu\k#hd-
    ebZ24>8<=)'zQAgM
    inr?s`/V0vJ;tc6L
    1oPyG}CK:&5x37Da
    RO!.wYqFSl
    9@fN_*  <---- not 16 characters
    $j,BT^|WH
    m+%E

真正的问题不是它在多行上,因为我最多有25个左右,但是如果它将空白视为转义码而不是字符,那么如果用户插入一个转义码,它将不会在这个网格最终会导致问题。这个问题是否有解决方案,因为我认为没有任何意义,而且我尝试过的任何搜索字词都比较枯燥。 (应注意,我在多行上打印它们的部分方式是在每个16个字符的序列的末尾添加换行符,这使难度变得更大,因为我的第一个想法是仅使用原始字符串或的东西,但如果我这样做,它将无法在没有几个打印功能的情况下在新行上打印,而这样做的最终目的显然不是仅将文本打印到终端上)

import string
try:
  import secrets
except:
  !pip install secrets
  import secrets
#self.charlist = list(" {}{}{}".format(string.ascii_letters,string.digits,string.punctuation)) #my old method which didnt include whitespaces
self.charlist = list(string.printable)
print(self.charlist)
self.randomizedlist = []
while self.charlist:
  self.temp = secrets.randbelow(len(self.charlist))
  self.randomizedlist.append(self.charlist[self.temp]) 
  self.charlist.pop(self.temp)
print(self.randomizedlist)
self.n = 16
self.penfinal = [self.randomizedlist[self.i * self.n:(self.i + 1) * self.n] for self.i in range((len(self.randomizedlist) + self.n - 1) // self.n )] # a one liner I found online to split the list
print(self.penfinal)
self.finallist = []
for self.I in range(len(self.penfinal)):
  self.finallist.append("".join(self.penfinal[self.I]))
print(self.finallist)
self.finalstring = ""
for self.I in range(len(self.finallist)):
  self.finalstring += self.finallist[self.I] + "\n"
print(self.finalstring)
fish890129 回答:有没有办法在没有原始解释的情况下将制表符写为字符? (或如何半生,一半不生)

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3136533.html

大家都在问