如何在Python中输入没有换行符?

2024-06-16 13:49:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过控制台(称为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属性。所以,当我在编辑器中输入代码时:

^{pr2}$

…我的输入之间有很大的,讨厌的空间。有没有人知道一种抑制这个空间输出的方法,类似于用于print functionend=''方法?在

编辑:参考项目位置:https://repl.it/@xMikee/File-Editing


Tags: 文件方法informatforinputlineopen
1条回答
网友
1楼 · 发布于 2024-06-16 13:49:23

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

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

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

此外,您正在加载的文件可能不一定在末尾有一个换行符,因此您需要检测到它并打印一个换行符(如果是这样的话)。请注意我在您的第一个for循环之后添加的内容:

^{pr2}$

相关问题 更多 >