gpt4 book ai didi

python - 如何在Python中不换行输入?

转载 作者:行者123 更新时间:2023-12-01 01:47:26 24 4
gpt4 key购买 nike

我正在尝试通过控制台(称为 PyCons)在 Python 中创建一个简单的文件编辑器。这是我当前的计划:

def PyCons(f):
file = open(f, "r")
appe = open(f, "a")
print("\n=====\nPyCons Editor, v1.2\nPython 3.6.1\n")
global i
i = 0
for line in file:
i += 1
print(" {}| ".format(i) + line, end='')
for k in range(10000000000000):
print("\n {}| ".format(i+1), end='')
inp = input("")
if inp == "@PyCons.save()":
print("\n=====")
break
else:
i += 1
appe.write("\n" + inp)

我使用了end方法来确保文件中的现有代码以其行格式正确打印,但 input函数没有 end属性。因此,当我在编辑器中输入代码时:

PyCons("magic.html")    
...

=====
PyCons Editor, v1.2
Python 3.6.1

1| <p>Hello!</p>
2| <h1>Big text!</h1>
3| <h2>Smaller text!</h2>
#Should be no spaces here
4| <p>More stuff!</p>
#No spaces here either
5| @PyCons.save()

=====

...我的输入之间有那些又大又讨厌的空格。有谁知道一种方法来抑制这个空间的输出,类似于 end=''用于 print function 的方法?

编辑:项目位置供引用:https://repl.it/@xMikee/File-Editing

最佳答案

输入中的换行符只是来自控制台的本地回显。您可以在屏幕上看到它们,但它们实际上并不是由 input 函数返回的。

真正的问题是在每个行号之前显式打印的换行符。删除 \n 以便打印行号的行变为:

print(" {}| ".format(i+1), end='')

此外,您正在加载的文件最后可能不一定有尾随换行符,因此您需要检测到这一点并在这种情况下打印换行符。请注意我在第一个 for 循环后添加的内容:

def PyCons(f):
file = open(f, "r")
appe = open(f, "a")
print("\n=====\nPyCons Editor, v1.2\nPython 3.6.1\n")
global i
i = 0
for line in file:
i += 1
print(" {}| ".format(i) + line, end='')
if not line.endswith('\n'):
print()
for k in range(10000000000000):
print(" {}| ".format(i+1), end='')
inp = input("")
if inp == "@PyCons.save()":
print("\n=====")
break
else:
i += 1
appe.write("\n" + inp)

关于python - 如何在Python中不换行输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51117366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com