2015-01-22 2 views
-1

tkinter 텍스트 상자의 내용을 가져 오는 데 문제가 있습니다. Excel에서 정보를 붙여 넣으면 (예를 들어) 항상 하단에 빈 줄이 추가됩니다. 그 줄을 자동으로 제거하고 싶습니다.텍스트 상자 위젯의 빈 줄

contents = inputText.get(1.0, "end-1c") 
for line in contents.split("\n"): 
    line = line.strip() 

내가 처음 '[을 : -1]'추가 : 만 텍스트 상자에 붙여 텍스트에서 작동 그 말에 이것은 내가 내용을 얻기 위해 사용하는 것입니다. 수동으로 텍스트를 입력하면 끝에 '\ n'이 없으므로 입력 된 마지막 문자가 제거됩니다. 안좋다!

어떻게 뒤 따르는 빈 줄을 제거 (또는 무시) 할 수 있습니까? 코드에서 'line = line.strip()'은 더 이상 효과가없는 것으로 보입니다.

감사합니다. Chris.

+0

당신이 어떻게' "최종 1C를"'를 사용하는 전체 예제를 보여줄 수 호출 전에 데이터에 strip()를 호출하는 경우 사용자가 입력 한 마지막 문자를 제거합니까? tkinter _always_는 데이터를 붙여 넣거나 다른 방법으로 삽입하더라도 상관 없습니다. 당신이 그 일을하기 위해하고있는 것이 틀림 없습니다. 우리가 당신의 코드를 볼 수 있다면 우리는 아마도 그 문제의 원인을 볼 수있을 것입니다. –

+0

안녕하세요 @ BryanOakley : 단지 "end-1c"'를 사용하면 마지막 글자는 제거되지 않지만 뒤 따르는 빈 줄은 제거되지 않습니다. 마지막에 "end-1c) [: - 1]"을 추가하면 마지막 문자가 제거됩니다. 고마워, 크리스. – user3514446

답변

1

문제는 텍스트를 가져 오는 것이 아니라 문제는 붙여 넣기가 예상보다 많이 추가되는 것입니다. 텍스트를 얻으려면 위젯에서 어떻게 종료되었는지에 관계없이 .get("1.0", "end-1c")을 사용해야합니다. 여분의 개행 문자가 사용자가 직접 또는 붙여 넣기 작업에서 온 경우 위젯의 내용을 가져올 때 알 수있는 방법이 없습니다. tkinter에 텍스트는 입력 방법에 관계없이 텍스트입니다.

유일한 해결책은 붙여 넣기 바인딩을 조정하는 것입니다. 심지어 tkinter가 클립 보드 내용이 Excel 또는 다른 소스에서 왔는지를 알 수있는 방법이 없다고 생각하기 때문에 문제가됩니다.

당신이 정말로 원하는 모두는 빈 줄을 후행 모든를 무시 split("\n")

+0

감사합니다. @ 브라이언 오클리! 그거야. – user3514446

관련 문제