【发布时间】:2020-02-12 22:23:53
【问题描述】:
这里是个初学者。我有一个命令行脚本可以很好地完成我的工作,我希望将它移到 GUI 中。
os.chdir(ImageDirST)
for f in sorted(os.listdir(ImageDirST)):
f_name,f_ext = (os.path.splitext(f))
f_sku = (f_name.split(' ')[0])
f_num = (f_name[-2:])
n_name = ('{}_{}{}'.format(f_sku,f_num,f_ext))
print(f, "-->", n_name)
我希望它在 tkinter 的消息窗口中以相同的方式显示。
在此处的一些帮助下,当按下按钮时,我设法打印了目录中的文件名:
filenames = sorted(os.listdir(ImageDirBT))
text = "\n".join(filenames)
print_filename_test.set(text)
在设置变量之前,我尝试使用拆分代码设置新文件名的列表,其中 print_filenames() 是按下按钮触发的函数。
def print_filenames():
filenames = sorted(os.listdir(ImageDirBT))
for filenames in sorted(os.listdir(ImageDirBT)):
f_name,f_ext = (os.path.splitext(filenames))
f_sku = (f_name.split('_')[0])
f_num = (f_name[-2:])
n_name = ('{}_{}{}'.format(f_sku,f_num,f_ext))
newlist = "\n".join(n_name)
print_filename_test.set(newlist)
我在 print_filenames() 的代码中没有遇到任何错误,但是消息面板中显示的是列表中的最后一个文件名,垂直方向,一个字符宽: 例如:
F
I
L
E
_
1
1
.
e
x
t
我想将输出显示为:
oldfilename_01.ext --> newfilename_csvdata_01.ext
oldfilename_02.ext --> newfilename_csvdata_02.ext
oldfilename_03.ext --> newfilename_csvdata_03.ext
oldfilename_04.ext --> newfilename_csvdata_04.ext
我编写的命令行程序使用数字来选择需要完成的菜单选项,在完成任何重命名之前进行确认,从而打印文件名比较。我的斗争是操纵列表中的字符串以便能够做同样的事情。
【问题讨论】:
-
您使用哪个小部件来显示输出?
Text? -
@Henry 消息小部件,但理想情况下它是可滚动的,所以我很乐意改变它
标签: python variables tkinter operating-system