首页 > 解决方案 > TKinter 将用户名和密码保存在字符串文件中

问题描述

我正在尝试设计一个界面,允许用户使用从数据库中提取的 csv 文件下载带有用户名和密码凭据的数据。目标是将连接详细信息与该文件中的一些详细信息“某种”合并,以生成 CURL 字符串作为文本文件

这是我的 csv 文件示例:

Fichier,No. de document,DocumentId,Filename
rar,008_029_ENS_EXE_CCE_PGC_IRE_001,1348828088588073573,NRO-08-029-Saint-Laurent.rar
pdf,08_001_059_DOE_CCR_CNV_SAD_001,1348828088574792249,08_001_059_DOE_CCR_CNV_SAD_001_B3.pdf
pdf,08_001_059_DOE_SRO_LST_LOD_001,1348828088574845667,08_001_059_DOE_SRO_LST_LOD_001_A3.pdf

这是我的“python”脚本:

import sys
import os
import csv
import subprocess
from tkinter import *
from tkinter import ttk
from tkinter import filedialog

root = Tk()
root.title('Aconex Download Manager')
root.geometry("465x230")

def AddConnection():
    if not entry_user.get() or not entry_pass.get():
        messagebox.showerror('Invalid', 'Empty username or password')
    else:
        addconnect = open ("XXXXXX.txt", "w") # don't know what to do in order to keep username and password
        addconnect.write(entry_user.get() + ':' + entry_pass.get())
    return

def UploadAction():
    filename = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("csv files","*.csv"),("all files","*.*")))

def SaveAction(event=None):
    directory = filedialog.askdirectory()

def ConvertTool():
    data_out = open('download_list.txt', 'w')
    with open(filename) as csv_file:
        csv_reader = csv.DictReader(csv_file, delimiter=',')
        for row in csv_reader:
            data_out.write('curl -u '+ (entry_user.get() + ':' + entry_pass.get())' +' -o ' +'"'+ (row['Filename']) +'" '+ 'http://my-website.com/268441485/register/' +""+ (row['DocumentId'])+""+"\n")
    data_out.close()

def DownloadTool():
    subprocess.call([r'.\bat\download_tool.bat'])

def QuictAction():
    root.destroy()

Label(root, text = "Username :").grid(row = 0, padx = 3, pady = 3)
entry_user = Entry(root, width = "30")
entry_user.grid(row = 0, column = 1, padx = 1, pady = 10, ipady = 3)
password = Label(root, text = "Password :").grid(row = 1, padx = 3, pady = 3)
entry_pass = Entry(root,width = "30", show ='*')
entry_pass.grid(row = 1, column = 1, padx = 1, pady = 10, ipady = 3)
button4 = ttk.Button(root, text = ">> Converting Data from CSV", width = 30, command = ConvertTool).grid(row = 3, column = 1, padx = 10, pady = 10, sticky = "nw")
button5 = ttk.Button(root, text = "Download >>", width = 25, command = DownloadTool).grid(row = 3, column = 2, padx = 10, pady = 10, sticky = "ne")
separatorLEFT = ttk.Separator(root, orient = HORIZONTAL).grid(row = 2, column = 1, columnspan = 2, padx = 10, pady = 20, sticky = "ew")
button2 = ttk.Button(root, text = "Select CSV File", width = 25, command = UploadAction).grid(row = 0, column = 2, padx = 10, pady = 10, sticky = "ne")
button3 = ttk.Button(root, text = "Select Download Folder", width = 25, command = SaveAction).grid(row = 1, column = 2, padx = 10, pady = 10, sticky = "ne")
separatorRIGHT = ttk.Separator(root, orient = HORIZONTAL).grid(row = 2, column = 1, columnspan = 2, padx = 10, pady = 20, sticky = "ew")
button6 = ttk.Button(root, text = "Close  ", width = 6,  command = QuictAction).grid(row = 4, column = 2, padx = 10, pady = 10, sticky = "ne")
root.mainloop()

如您所见,我不是编码员,我只能破解一些代码。我可能需要有一天永远学习 Python ..^^ 我想在最后得到一个列表(.txt),如下所示:

curl -u john:connor -o NRO-08-029-Saint-Laurent.rar http://my-website.com/268441485/register/1348828088588073573
curl -u john:connor -o 08_001_059_DOE_CCR_CNV_SAD_001_B3.pdf http://my-website.com/268441485/register/1348828088574792249
curl -u john:connor -o 08_001_059_DOE_SRO_LST_LOD_001_A3.pdf http://my-website.com/268441485/register/1348828088574845667

对不起,如果不是很清楚,但我的想法就像我的代码......真的很乱。预先感谢您的所有建议。

干杯。

标签: python-3.xtkinter

解决方案


推荐阅读