【问题标题】:python .get function adds a newline, how do i remove it?python .get 函数添加了一个换行符,我如何删除它?
【发布时间】:2016-01-17 13:47:07
【问题描述】:

我在 python 中使用 tkinter 插件,我正在“.get”来自文本小部件的输入文本,

当我这样做时,它决定添加一个换行符。

我不想要这个换行符,因为它弄乱了我的 CSV 保存文件,意味着我无法从 python 正确读取我的 CSV 文件。

如何去掉“\n”?

我试过“.rstrip”和“.splitlines”都不管用。

This is what is displayed by the code...

如何去掉换行符“\n”?

纯代码:

TextIDNumber = Text(App, height = "1", width = "25", bd = "4")
TextIDNumber.place(x = 550, y = 250)
TextIDNumber.config(font =("bold", 20))
TextSurname = Text(App, height = "1", width = "25", bd = "4")
TextSurname.place(x = 550, y = 350)
TextSurname.config(font =("bold", 20))



def CheckInputUI():
    IDNumber = TextIDNumber.get("1.0", END)
    Surname = TextSurname.get("1.0", END)
    print (Surname, IDNumber)
    print ("")
    print (Surname + IDNumber)

重现您的问题的最短代码,我们可以在我们自己的机器上运行:

from tkinter import *


App = Tk()

#This maximises the window
w = App.winfo_screenwidth()
h = App.winfo_screenheight()

App.geometry("%dx%d+0+0" % ((w-10), (h-30)))

TextIDNumber = Text(App, height = "1", width = "25", bd = "4")
TextIDNumber.place(x = 550, y = 250)
TextIDNumber.config(font =("bold", 20))
TextSurname = Text(App, height = "1", width = "25", bd = "4")
TextSurname.place(x = 550, y = 350)
TextSurname.config(font =("bold", 20))

def PrintInfo():
    IDNumber = TextIDNumber.get("1.0", END)
    Surname = TextSurname.get("1.0", END)
    print (Surname, IDNumber)
    print ("")
    print (Surname + IDNumber)

DoneButton = Button(App, text = " Done ", font = ("bold", 18), command = PrintInfo).place(x = 400,y = 800)

我使用打印件仅在 shell 上显示我的工作(这样我就可以找到问题的根源,换句话说,在哪里添加了换行符),它们没有其他用途。

【问题讨论】:

  • 请发布纯代码而不是图片,以便重现您的问题。
  • 所有代码?或者只是图片中包含的“纯代码”?
  • 您是否将 CheckInputUI 绑定到 Enter 键?
  • 我的 python 时代已经过去了,这只是一个有趣的时间浪费,
  • 新行由"\n" 表示,而不是"/n"

标签: python csv tkinter


【解决方案1】:

文本小部件保证末尾总是有换行符,即使实际数据中没有换行符。要从小部件中获取所有数据除了这个特殊的换行符,在获取数据时使用"end-1c"(结尾减一个字符):

IDNumber = TextIDNumber.get("1.0", "end-1c")
Surname = TextSurname.get("1.0", "end-1c")

如果有可能将空白行添加到数据中,您可以使用 strip 去除所有尾随空格:

IDNumber = TextIDNumber.get("1.0", END).rstrip()
Surname = TextSurname.get("1.0", END).rstrip()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-09
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多