从文件 (1) 调用函数。尝试使用文件 (2) 的 'Entry' 输入中的变量。最终还是得到了 file(1) 变量

Calling function from file(1). Try to use variable from 'Entry' input of file(2). end up still got file(1) variable

对不起标题。我不确定如何让它适合这个。

我正在抓取网站。大多数部分已完成,现在我尝试使用 TKinter 创建输入字段。 使用文件 Button.py 从文件 Bitkub_scrape.py 调用函数。函数 make_df() 需要 file_path 的值才能工作。

我想在 Button.py 文件中使用 Entry 字段的输入。 它returns:

FileNotFoundError: [Errno 2] No such file or directory: ''

其中 '' 来自 Bitkub_scrape.py.

这是我在“Bitkub_scrape.py”文件中的函数代码:

def make_df():
    #for loop make list
    for coin, chains, wdf in zip(coin_name_res, chain_name, fee_res):
        #print("Coin name: {} Chain: {} Fee: {}".format(coin, chains, wdf))

        #create dataframe
        df=(pd.DataFrame({'coin_name': coin_name_res[0:100], 'chain_name': chain_name, 'withdrawal_fees':fee_res}))
        #print(df)
        file_path = ""
        #csv
        df.to_csv(file_path, index=False)
        df_saved_file = pd.read_csv(file_path)
        df_saved_file

    driver.quit()

make_df()

这是我的 Button.py 文件:

root = tkinter.Tk()
root.title('Bitkub Fee monitor')
root.geometry("500x500")

e = Entry(root, width=60)
e.pack()

def Bitkub():
    from Bitkub_scrape import make_df
    make_df()
    file_path.append(e.get())
    Bitkub_label = Label(root,text="Done, Check file name: Bitkub_fee.csv")
    Bitkub_label.pack()
    print(path)


Bitkub_button = Button(root,text="Get Bitkub Fee", command=Bitkub, height = 5, width = 60, bg="green")
Bitkub_button.pack()

root.mainloop()

下面是如何实现我在评论中建议的——将 Entry 的内容传递给 make_df() 函数——这需要对两个源文件进行更改。请注意以下内容未经测试。

Button.py 文件更改:

from Bitkub_scrape import make_df
import tkinter as tk

root = tk.Tk()
root.title('Bitkub Fee monitor')
root.geometry("500x500")

e = tk.Entry(root, width=60)
e.pack()

def Bitkub():
    make_df(e.get())
    Bitkub_label = Label(root, text="Done, Check file name: Bitkub_fee.csv")
    Bitkub_label.pack()
    print(path)


Bitkub_button = tk.Button(root, text="Get Bitkub Fee", command=Bitkub, height=5, width=60,
                          bg="green")
Bitkub_button.pack()

root.mainloop()

Bitkub_scrape.py 文件更改:

import pandas as pd

def make_df(file_path):
    for coin, chains, wdf in zip(coin_name_res, chain_name, fee_res):
        #print("Coin name: {} Chain: {} Fee: {}".format(coin, chains, wdf))

        # Create dataframe
        df=(pd.DataFrame({'coin_name': coin_name_res[0:100], 'chain_name': chain_name,
                          'withdrawal_fees':fee_res}))
        #print(df)
        # Create CSV file
        df.to_csv(file_path, index=False)
        df_saved_file = pd.read_csv(file_path)
        df_saved_file

    driver.quit()

同时删除文件末尾的 make_df() 调用。