RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1601035
Accepted
Андрей К
Андрей К
Asked:2024-11-27 23:46:14 +0000 UTC2024-11-27 23:46:14 +0000 UTC 2024-11-27 23:46:14 +0000 UTC

保存特定列的树视图

  • 772

请帮忙。有一个包含 7 列的树视图。有必要对文件进行两次不同的保存,在第一个文件中保存 Treeview 中的所有列,在第二个文件中仅保存 2-5 列。采用 CSV 格式。一些代码:

 self.tree = ttk.Treeview(self, columns=("1", "2", "3", "4", "5", "6", "7"), height=30,  show="headings")        
    self.tree.column("1", width=50, anchor=tk.CENTER)
    self.tree.column("2", width=150, anchor=tk.CENTER)
    self.tree.column("3", width=50, anchor=tk.CENTER)
    self.tree.column("4", width=50, anchor=tk.CENTER)
    self.tree.column("5", width=70, anchor=tk.CENTER)        
    self.tree.column("6", width=70, anchor=tk.CENTER)
    self.tree.column("7", width=70, anchor=tk.CENTER)

按钮添加+保存到文件

 btn_zap = ttk.Button(Form3, text="Сохранить Все", command=lambda: [self.Zapis()])        
 btn_zap.place(x=70, y=250)

 btn_zap = ttk.Button(Form3, text="Сохранить часть", command=lambda: [self.Zapis_2()])        
 btn_zap.place(x=170, y=250)

 def Zapis(self):# Запись в файл
    file = open(file_path, "a", encoding='utf-8')
    file.write(str(self.1) + ",")        
    file.write(str(self.2.get() + ","))
    file.write(str(self.3.get() + ","))
    file.write(str(self.4.get() + ","))
    file.write(str(self.5.get() + ","))        
    file.write(str(self.6.get() + ","))        
    file.write(str(self.7.get() + "\n"))        
    self.1.delete(0, "end")
    self.2.delete(0, "end")
    self.3.delete(0, "end")        
    self.4.delete(0, "end")
    self.5.delete(0, "end")
    self.6.delete(0, "end")        
    self.7.delete(0, "end")        
    file.close()

 def Zapis(self):# Запись в файл 2


 ????
 filedialog.asksaveasfilename(filetypes=(("CSV files", "*.csv")))
python
  • 1 1 个回答
  • 11 Views

1 个回答

  • Voted
  1. Best Answer
    Fox Fox
    2024-11-28T02:40:18Z2024-11-28T02:40:18Z

    我认为应该使用的技术就是一个例子。非常简单,没有保险或支票。

    import csv
    import tkinter
    import tkinter.ttk
    import tkinter.messagebox
    
    # Пример данных для Treeview
    data = [
        ("Row1_Col1", "Row1_Col2", "Row1_Col3", "Row1_Col4", "Row1_Col5", "Row1_Col6", "Row1_Col7"),
        ("Row2_Col1", "Row2_Col2", "Row2_Col3", "Row2_Col4", "Row2_Col5", "Row2_Col6", "Row2_Col7"),
        # Добавьте больше строк по необходимости
    ]
    
    # Создаем окно Tkinter
    root = tkinter.Tk()
    root.title("Treeview Example")
    
    # Создаем Treeview
    columns = [f"#{i}" for i in range(1, 8)]
    tree = tkinter.ttk.Treeview(root, columns=columns, show="headings")
    tree.pack()
    
    # Добавляем заголовки колонок
    for i, col in enumerate(columns, start=1):
        tree.heading(col, text=f"№{i}")
    
    # Заполняем Treeview данными
    for row in data:
        tree.insert("", "end", values=row)
    
    # Функция для сохранения всех колонок в CSV
    def save_all_columns():
        with open("all_columns.csv", mode='w', newline='') as file:
            writer = csv.writer(file)
            # Записываем заголовки
            writer.writerow([tree.heading(col)["text"] for col in tree["columns"]])
            # Записываем данные
            for row in tree.get_children():
                writer.writerow(tree.item(row)["values"])
        tkinter.messagebox.showinfo("Сохранение завершено", "Все колонки сохранены в all_columns.csv!")
    
    # Функция для сохранения колонок 2-5 в CSV
    def save_selected_columns():
        with open("selected_columns.csv", mode='w', newline='') as file:
            writer = csv.writer(file)
            # Записываем заголовки
            writer.writerow([tree.heading(col)["text"] for col in tree["columns"][1:5]])
            # Записываем данные
            for row in tree.get_children():
                values = tree.item(row)["values"]
                writer.writerow(values[1:5])
        tkinter.messagebox.showinfo("Сохранение завершено", "Колонки 2-5 сохранены в selected_columns.csv!")
    
    # Создаем кнопки
    btn_save_all = tkinter.Button(root, text="Сохранить все", command=save_all_columns)
    btn_save_all.pack(side=tkinter.LEFT, padx=10, pady=10)
    
    btn_save_selected = tkinter.Button(root, text="Сохранить колонки 2-5", command=save_selected_columns)
    btn_save_selected.pack(side=tkinter.LEFT, padx=10, pady=10)
    
    # Запускаем главный цикл Tkinter
    root.mainloop()
    
    • 1

相关问题

  • 是否可以以某种方式自定义 QTabWidget?

  • telebot.anihelper.ApiException 错误

  • Python。检查一个数字是否是 3 的幂。输出 无

  • 解析多个响应

  • 交换两个数组的元素,以便它们的新内容也反转

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5