2

I am making a random website generator and am trying to make it so that when you click the button to generate the link it also opens your browser but everything I find on the internet will not work. Here is my code I would really appreciate some help.

from tkinter import *
import random
import tkinter as tk
from tkinter import ttk
import os
NORM_FONT=("timesnewroman", 12)
root = Tk()
class Window(Frame):
    def showtxt(self):
        text=Label(self, text="Please change the file location after os.startfile to the directory of your browser including the browser exe itself")

    def openFile(self):
        os.startfile("C:\Program Files (x86)\Mozilla Firefox\firefox")



    def __init__(self, master=None):
        Frame.__init__(self, master)                 
        self.master = master
        self.init_window()


    def init_window(self):

        self.showtxt


        self.master.title("Random Website Generator")


        self.pack(fill=BOTH, expand=1)


        quitButton = Button(self, command = self.openFile, text="Generate URL", bg = "#009933")

        quitButton.configure(command = lambda: popupmsg ("Please check the shell or command prompt for the URL. And please change the file location after os.startfile to the directory of your browser including the browser .exe itself"))

        quitButton.bind('<ButtonRelease-1>', self.client_exit,)

        quitButton.place(x=150, y=130)

    def client_exit(self, event=None):
        File = open("Random Website.txt",).readlines()
        name=random.choice(File)[:-1]
        print (name)




def popupmsg(msg):
    popup = tk.Tk()
    popup.wm_title("Name Generator")
    label = ttk.Label(popup, text=msg, font=NORM_FONT)
    label.pack(side="top", fill="x", pady=10)
    B1 = ttk.Button(popup, text="OK", command = popup.destroy)
    B1.pack()
    popup.mainloop()






root.geometry("400x300")

app = Window(root)
root.mainloop()  
Ethan Burnell
  • 21
  • 1
  • 2

1 Answers1

2

I imagine your code is raising a WindowsError: [Error 2] The system cannot find the file specified: 'C:\\Program Files\\Mozilla Firefox (x86)\x0cirefox'. In particular, notice the \x0c in this error that was supposed to be \f.

You need to escape the backslashes in your file path, or else you will unwittingly reference the escape sequence \f.

os.startfile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox")

Alternatively, you can use a raw string.

os.startfile(r"C:\Program Files (x86)\Mozilla Firefox\firefox")
Community
  • 1
  • 1
Jared Goguen
  • 8,772
  • 2
  • 18
  • 36