質問編集履歴

2

解決したため

2023/01/26 17:51

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- pythonでGUI使ってファイルを作成する方法!至急!
1
+ 解決しましたお手数おかけしました
test CHANGED
@@ -1,99 +1,16 @@
1
- ### 前提
1
+ 解決しました
2
- 至急お願いしたいです!
2
+ ありがとうござした
3
- プログラミング初心者です。
4
- PythonでGUIを作成している最中なのですが、指定したフォルダ内でのファイル作成の仕方、そのファイルへの書きだし方が分からないのでわかる方教えていただきたいです。ボタン2の処理の仕方が分かりません。
5
3
 
6
- ### 実現したいこと
7
4
 
8
- GUIにて作成したボタンを押すことで、チェックボタンやラジオボタンの結果をファイル名(data.csv)というファイルとして書き出し、追記方式で保存できるようにする。ボタン2の処理方法のコードを教えていただきたいです。
9
5
 
10
- ### 発生している問題・エラーメッセージ
11
6
 
12
- ```
13
- Exception in Tkinter callback
14
- Traceback (most recent call last):
15
- File "C:\Users\owner\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1892, in __call__
16
- return self.func(*args)
17
- File "C:/usr/home/iot2022/ex3_2.py", line 14, in btn2_clk
18
- f1.write(rdo.get(),',',chk1.get(),',',chk2.get())
19
- TypeError: TextIOWrapper.write() takes exactly one argument (5 given)
20
- ```
21
7
 
22
- ### 該当のソースコード
23
8
 
24
- import pathlib
25
- import tkinter as tk
26
- from tkinter import Entry, filedialog
27
9
 
28
- def btn1_clk(event):
29
- dirname = filedialog.askdirectory( title='フォルダを開く', initialdir='./' )
30
- ent.delete( 0, tk.END )
31
- ent.insert( 0, dirname )
32
10
 
33
- def btn2_clk(event):
34
- pathlib.Path(ent.get())
35
- path1 = pathlib.Path('data.csv')
36
- f1 = open('data.csv',mode='a')
37
- f1.write(rdo.get(),',',chk1.get(),',',chk2.get())
38
- f1.close
39
-
40
11
 
41
- root = tk.Tk()
42
- root.title('アンケート')
43
- root.geometry('250x300')
44
12
 
45
- lbl = tk.Label( text='性別' )
46
- lbl.place(x=20,y=10)
47
- rdo = tk.IntVar()
48
- rbtn_1=tk.Radiobutton(value=0, variable=rdo, text='男')
49
- rbtn_1.place(x=50, y=30)
50
- rbtn_2=tk.Radiobutton(value=1, variable=rdo, text='女')
51
- rbtn_2.place(x=50, y=50)
52
13
 
53
- lbl2 = tk.Label( text='本学を知った手段' )
54
- lbl2.place(x=20,y=100)
55
- chk1=tk.BooleanVar()
56
- cbtn1=tk.Checkbutton(variable=chk1, text='知人から聞いた')
57
- cbtn1.place(x=50,y=120)
58
- chk2=tk.BooleanVar()
59
- cbtn2=tk.Checkbutton(variable=chk2, text='広告で見た')
60
- cbtn2.place(x=50,y=145)
61
14
 
62
- lbl3 = tk.Label( text='出力フォルダ' )
63
- lbl3.place(x=20,y=190)
64
15
 
65
- ent = tk.Entry( width=27 )
66
- ent.place(x=25, y=215)
67
16
 
68
- btn1 = tk.Button( text='参照' )
69
- btn1.bind('<Button-1>', btn1_clk)
70
- btn1.place( x=200, y=215 )
71
-
72
- btn2 = tk.Button( text='実行', width=10 )
73
- btn2.bind('<Button-1>', btn2_clk)
74
- btn2.place(x=90, y=260)
75
-
76
- root.mainloop()
77
-
78
- ### 試したこと
79
-
80
- 試したコードは、自分が分かる物を継接ぎして
81
- def btn2_clk(event):
82
- pathlib.Path(ent.get())
83
- path1 = pathlib.Path('data.csv')
84
- f1 = open('data.csv',mode='a')
85
- f1.write(rdo.get(),',',chk1.get(),',',chk2.get())
86
- f1.close
87
- です。
88
- ここ以外は正常に動くので、最後の処理であるこれだけアドバイスいただきたいです。。。
89
-
90
- やりたいこととしては、ボタン1をクリックして選択したフォルダ内に、data.csvという追記方式のファイルを作成したいです。
91
- ファイルの内容は、0,True,True
92
- 1,False,True
93
- のように、print(rdo.get(),',',chk1.get(),',',chk2.get())の実行結果です。
94
-
95
- ### 補足情報(FW/ツールのバージョンなど)
96
-
97
- 勉強不足でわかりにくい説明かと思いますが、詳しい方教えていただけたら幸いです。
98
- よろしくお願いいたします。
99
-

1

試したことについて追記いたしました。

2023/01/26 15:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -77,8 +77,16 @@
77
77
 
78
78
  ### 試したこと
79
79
 
80
+ 試したコードは、自分が分かる物を継接ぎして
80
81
  def btn2_clk(event):
81
- の箇所の処理が全く分かりません。
82
+ pathlib.Path(ent.get())
83
+ path1 = pathlib.Path('data.csv')
84
+ f1 = open('data.csv',mode='a')
85
+ f1.write(rdo.get(),',',chk1.get(),',',chk2.get())
86
+ f1.close
87
+ です。
88
+ ここ以外は正常に動くので、最後の処理であるこれだけアドバイスいただきたいです。。。
89
+
82
90
  やりたいこととしては、ボタン1をクリックして選択したフォルダ内に、data.csvという追記方式のファイルを作成したいです。
83
91
  ファイルの内容は、0,True,True
84
92
  1,False,True