Python 有没有一种方法可以在没有原始解释的情况下将制表符写成字符?(或如何一半生,一半不生)

Python 有没有一种方法可以在没有原始解释的情况下将制表符写成字符?(或如何一半生,一半不生),python,string,ascii,whitespace,Python,String,Ascii,Whitespace,我正在尝试创建一个系统,该系统将自动(安全地)创建一个网格,其中正好有16列表示用户可以输入到输入字段中的每个可能字符;问题是空白(如制表符、新行等)的打印方式与正常的新行字符转义序列相同。例: ~(p{][Iu\k#hd- ebZ24>8<=)'zQAgM inr?s`/V0vJ;tc6L 1oPyG}CK:&5x37Da RO!.wYqFSl 9@fN_* <---- not 16 characters $j

我正在尝试创建一个系统,该系统将自动(安全地)创建一个网格,其中正好有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

这回答了你的问题吗?听起来您希望使用一个(单个)可打印字符作为每个字符的显示版本。您可以尝试控制图片块(U+2400到U+2426);e、 g.,将线路馈线映射到U+240A,␊.
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)