我想使用asksaveasfilename对话框将我在Text小部件中输入的一些内容保存为.txt
或.doc
格式。在此之后,我希望它在resp中打开。记事本或MS Word。
from tkFileDialog import asksaveasfilename
import os.path
name = asksaveasfilename(
initialdir="dir",
title="Save as",
filetypes=[("Text files",".txt"),("Word files",".doc")])
data = open(name,"w")
data.write("text from text widget")
os.startfile(name)
它会创建文件但不会在MS Word或记事本中打开它。相反,它询问我打算如何打开此文件。如果我选择该程序,它将正确打开,但我希望它直接打开。 (没有选择打开文件的程序)。当我直接在“文件名:”框中提供扩展时,它按照我想要的方式工作。
这有效: 文件名:something.doc 保存类型:Word文件(* .doc) --->创建something.doc并在MS Word中打开它。
但事实并非如此 文件名:东西 保存类型:Word文件(* .doc) --->创建一些东西(没有扩展名)并询问我希望它打开的程序。
我使用的是Python 2.7.8,Windows 8,Office 2010。
答案 0 :(得分:0)
如果添加print name
,您可以看到问题,例如
C:/Users/jsharpe/Downloads/testing
请注意,未添加任何扩展程序 - 我只输入了"testing"
。 filetypes
参数对于限制用户对现有文件的选择更有用,如果用户不提供,则不会添加相应的扩展名。
您可以为用户未输入扩展程序的情况设置defaultextension
,但这不会反映下拉菜单中选择的类型(例如,如果您设置defaultextension=".txt"
它即使用户从.doc
选择该选项,也不会是filetypes
。
name = asksaveasfilename(defaultextension=".txt",
filetypes=[("Text files",".txt"),
("Word files",".doc")],
initialdir="dir",
title="Save as")
(请注意,按字母顺序排列的参数顺序可让您在添加更多选项时更轻松)
另一方面,你(仍然!)没有close
文件,这可能会导致问题 - 我建议使用with
上下文管理器进行文件处理:
with open(name, "w") as data:
data.write("text from text widget")
答案 1 :(得分:0)
只需运行此代码即可:
from tkinter import *
from tkinter import ttk
name=[]*1000
surname=[]*1000
email=[]*1000
password=[]*1000
cpassword=[]*1000
phonenum=[]*1000
def mainpage3():
global phonenum
global cpassword
global password
global email
global surname
global name
global page1
global bpage
global e1
global e2
global e3
global e4
global e5
global e6
name.append(e1.get())
surname.append(e2.get())
email.append(e3.get())
password.append(e4.get())
cpassword.append(e5.get())
phonenum.append(e6.get())
bpage.destroy()
cpage=Tk()
cpage.title('boors')
mainframe = ttk.Frame(cpage, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
ttk.Label(cpage,text='نام').grid(column=8,row=1)
ttk.Label(cpage,text='نام خانوادگي').grid(column=8,row=2)
ttk.Label(cpage,text='ايميل').grid(column=8,row=3)
ttk.Label(cpage,text='شماره تلفن').grid(column=8,row=4)
ttk.Label(cpage,text=name[0]).grid(column=7,row=1)
ttk.Label(cpage,text=surname[0]).grid(column=7,row=2)
ttk.Label(cpage,text=email[0]).grid(column=7,row=3)
ttk.Label(cpage,text=phonenum[0]).grid(column=7,row=4)
ttk.Label(cpage,text='').grid(column=8,row=5)
ttk.Button(cpage,text='خريد').grid(column=8,row=6)
ttk.Button(cpage,text='فروش').grid(column=8,row=7)
ttk.Entry(cpage).grid(column=7,row=6)
ttk.Entry(cpage).grid(column=7,row=7)
ttk.Label(cpage,text='agah').grid(column=1,row=1)
ttk.Label(cpage,text='agah').grid(column=2,row=1)
ttk.Label(cpage,text='agah').grid(column=3,row=1)
ttk.Label(cpage,text='agah').grid(column=4,row=1)
ttk.Label(cpage,text='code').grid(column=5,row=1)
ttk.Label(cpage,text='agah').grid(column=1,row=2)
ttk.Label(cpage,text='agah').grid(column=2,row=2)
ttk.Label(cpage,text='agah').grid(column=3,row=2)
ttk.Label(cpage,text='agah').grid(column=4,row=2)
ttk.Label(cpage,text='1').grid(column=5,row=2)
ttk.Label(cpage,text='agah').grid(column=1,row=3)
ttk.Label(cpage,text='agah').grid(column=2,row=3)
ttk.Label(cpage,text='agah').grid(column=3,row=3)
ttk.Label(cpage,text='agah').grid(column=4,row=3)
ttk.Label(cpage,text='2').grid(column=5,row=3)
ttk.Label(cpage,text='agah').grid(column=1,row=4)
ttk.Label(cpage,text='agah').grid(column=2,row=4)
ttk.Label(cpage,text='agah').grid(column=3,row=4)
ttk.Label(cpage,text='agah').grid(column=4,row=4)
ttk.Label(cpage,text='3').grid(column=5,row=4)
ttk.Label(cpage,text='agah').grid(column=1,row=5)
ttk.Label(cpage,text='agah').grid(column=2,row=5)
ttk.Label(cpage,text='agah').grid(column=3,row=5)
ttk.Label(cpage,text='agah').grid(column=4,row=5)
ttk.Label(cpage,text='4').grid(column=5,row=5)
ttk.Label(cpage,text='اخبار').grid(column=3,row=6)
ttk.Label(cpage,text=' بگو آگاه اخبار').grid(column=3,row=7)
ttk.Label(cpage,text=' ').grid(column=2,row=6)
def mainpage2():
global e1
global e2
global e3
global e4
global e5
global e6
global bpage
page1.destroy()
bpage=Tk()
bpage.title('boors')
bpage.geometry('1000x1000')
mainframe = ttk.Frame(bpage, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
ttk.Label(bpage,text='').grid(column=1,row=1,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=3,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=4,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=6,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=7,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=9,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=10,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=12,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=13,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=15,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=16,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=18,sticky=E)
ttk.Label(bpage,text='').grid(column=1,row=19,sticky=E)
ttk.Label(bpage,text='Name',font='Verdana 25 bold').grid(column=1,row=2,sticky=E)
e1=ttk.Entry(bpage,width=100)
e1.grid(column=2,row=2,sticky=E)
ttk.Label(bpage,text='Surname',font='Verdana 25 bold').grid(column=1,row=5,sticky=E)
e2=ttk.Entry(bpage,width=100)
e2.grid(column=2,row=5,sticky=E)
ttk.Label(bpage,text='Email',font='Verdana 25 bold').grid(column=1,row=8,sticky=E)
e3=ttk.Entry(bpage,width=100)
e3.grid(column=2,row=8,sticky=E)
ttk.Label(bpage,text='Password',font='Verdana 25 bold').grid(column=1,row=11,sticky=E)
e4=ttk.Entry(bpage,width=100)
e4.grid(column=2,row=11,sticky=E)
ttk.Label(bpage,text='confirm password',font='Verdana 25 bold').grid(column=1,row=14,sticky=E)
e5=ttk.Entry(bpage,width=100)
e5.grid(column=2,row=14,sticky=E)
ttk.Label(bpage,text='phone number',font='Verdana 25 bold').grid(column=1,row=17,sticky=E)
e6=ttk.Entry(bpage,width=100)
e6.grid(column=2,row=17,sticky=E)
ttk.Button(bpage,text='done',width=100,command=mainpage3).grid(column=2,row=20,sticky=E)
def mainpage():
global page1
page1=Tk()
page1.title('bours')
mainframe = ttk.Frame(page1, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
ttk.Label(page1,text='Register Here',font = "Verdana 80 bold").grid(column=1,row=2)
ttk.Label(page1,text='',font='Verdana 30 bold').grid(column=1,row=1,sticky=E)
ttk.Button(page1,text='register',width=170,command=mainpage2).grid(column=1,row=4,sticky=E)
ttk.Label(page1,text='',font='Verdana 30 bold').grid(column=1,row=3,sticky=E)
mainpage()