如何在与 python 中的字符串相同的行上打印 tick/checkmark 字符
How to print a tick/checkmark character on the same line as the string in python
所以我有一个正在从文件中读取的字符串。如果在我的程序中满足某个条件,我想在它旁边打印一个勾号。如果打印在字符串的下一行上,如何打勾。这是负责打印字符串的函数。
def printData(self):
spaces = " " * self.getLevel() * 4 + "|__" if self.getLevel() != 0 else ""
if self.completed:
print(spaces + self.data + u'\u2713')
else:
print(spaces + self.data)
for child in self.children:
print(child.printData())
return ""
上面代码中,self.data其实就是要打印的字符串。我知道为什么会这样,但不知道如何解决。当我打印出包含字符串的列表时,它在每个字符串的末尾附加了换行符,这可能会迫使刻度线移动到下一行。这是我读取文件数据的方式。
def getCompData(self):
with open("subdata.txt", "r") as f:
lines = f.readlines()
for line in lines:
if line[0] == "c":
self.compTopics.append(line[1:])
return self.compTopics
我尝试使用 end=""
如下,但它也不起作用。
if self.completed:
print(spaces + self.data, end="")
print(u'\u2713')
任何有关如何解决此问题的想法都将不胜感激。谢谢
你的问题好像出在这个函数上。 readlines()
函数在末尾保留 \n
字符。要解决该问题,请使用 line.rstrip('\n')
。这应该是您修改后的函数:
def getCompData(self):
with open("subdata.txt", "r") as f:
lines = f.readlines()
for line in lines:
if line[0] == "c":
self.compTopics.append(line.rstrip('\n')[1:])
return self.compTopics
这部分现在按预期工作:
if self.completed:
print(spaces + self.data, end="")
print(u'\u2713')
希望你的功能现在能按预期工作:)
所以我有一个正在从文件中读取的字符串。如果在我的程序中满足某个条件,我想在它旁边打印一个勾号。如果打印在字符串的下一行上,如何打勾。这是负责打印字符串的函数。
def printData(self):
spaces = " " * self.getLevel() * 4 + "|__" if self.getLevel() != 0 else ""
if self.completed:
print(spaces + self.data + u'\u2713')
else:
print(spaces + self.data)
for child in self.children:
print(child.printData())
return ""
上面代码中,self.data其实就是要打印的字符串。我知道为什么会这样,但不知道如何解决。当我打印出包含字符串的列表时,它在每个字符串的末尾附加了换行符,这可能会迫使刻度线移动到下一行。这是我读取文件数据的方式。
def getCompData(self):
with open("subdata.txt", "r") as f:
lines = f.readlines()
for line in lines:
if line[0] == "c":
self.compTopics.append(line[1:])
return self.compTopics
我尝试使用 end=""
如下,但它也不起作用。
if self.completed:
print(spaces + self.data, end="")
print(u'\u2713')
任何有关如何解决此问题的想法都将不胜感激。谢谢
你的问题好像出在这个函数上。 readlines()
函数在末尾保留 \n
字符。要解决该问题,请使用 line.rstrip('\n')
。这应该是您修改后的函数:
def getCompData(self):
with open("subdata.txt", "r") as f:
lines = f.readlines()
for line in lines:
if line[0] == "c":
self.compTopics.append(line.rstrip('\n')[1:])
return self.compTopics
这部分现在按预期工作:
if self.completed:
print(spaces + self.data, end="")
print(u'\u2713')
希望你的功能现在能按预期工作:)