加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

我如何使用用户条目来更改文件名?

发布时间:2020-12-17 17:41:36 所属栏目:Python 来源:网络整理
导读:我是学习Python的新手,所以我需要帮助,因为我不认识可以帮助我的人.我正在尝试制作一个程序,其中用户可以根据自己在tkinter的Fname = Entry()上编写的内容来从excel更改文件名. 我试图通过使用= Fname.get()然后使用os.rename(Test.xlsx,“ .xlsx”)保存名为

我是学习Python的新手,所以我需要帮助,因为我不认识可以帮助我的人.我正在尝试制作一个程序,其中用户可以根据自己在tkinter的Fname = Entry()上编写的内容来从excel更改文件名.

我试图通过使用= Fname.get()然后使用os.rename(Test.xlsx,“ .xlsx”)保存名为Fname的条目中的数据来获取存储的数据.但是我总是得到一个错误:

    a = Fname.get()
AttributeError: 'NoneType' object has no attribute 'get'

我尝试的另一件事是使用仅由“ a”表示的“ Fname”,但出现此错误:

    os.rename("Test.xlsx",Fname + " .xlsx")
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

我也尝试直接更改’workbook = xlsxwriter.Workbook(Fnam“ .xlsx”)’,但错误仍然出现

PD:创建’.xlsx’文件没有任何麻烦

我正在使用的代码是下一个:

     import xlsxwriter
     import os.path
     from tkinter import *

     def run():
         a = Fname.get()
         os.rename("Test.xlsx",Fname + " .xlsx")

     screen = Tk()

     B1 = Button(text = "Name",command = run).grid(row = 2,column = 2)

     Fname = Entry().grid(row = 1,column = 1)

     BE = Button(text = "Exit").grid(row = 3,column = 3)

     workbook = xlsxwriter.Workbook("Test.xlsx")
     worksheet = workbook.add_worksheet()
     worksheet.write("A1","Question")
     worksheet.write("B1","Answer")
     workbook.close()

     screen.mainloop()
最佳答案
这是因为您要在网格化之后将Fname分配给该值,即None,则需要拆分行

Fname = Entry().grid(row = 1,column = 1)

进入

Fname = Entry()
Fname.grid(row = 1,column = 1)

如果您以后出于相同的原因尝试引用B1或BE,也会遇到类似的问题.

另外,您还需要使用StringVar()才能调用.get()

您的代码应该像我想象的那样

import xlsxwriter
import os.path
from tkinter import *

def run():
    a = user_input.get()
    os.rename("Test.xlsx",a + ".xlsx")

screen = Tk()

B1 = Button(text="Name",command=run)
B1.grid(row=2,column=2)

user_input = StringVar()
Fname = Entry(textvariable=user_input)
Fname.grid(row=1,column=1)

BE = Button(text="Exit")
BE.grid(row=3,column=3)

workbook = xlsxwriter.Workbook("Test.xlsx")
worksheet = workbook.add_worksheet()
worksheet.write("A1","Question")
worksheet.write("B1","Answer")
workbook.close()

screen.mainloop()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读