2017-11-06 7 views
-1

私はcsvファイルのエントリに入力したものを期間< "dateとtime">と一緒に保存するこのコードを持っています私の挑戦は期間であり、入力されたデータは同じ列見出しの下に保存されます。エントリと日付のデータをtkinterの各列の下に保存する方法

DATE列に日付が保存され、入力されたデータがINPUT列に保存され、時刻が "#####"として保存されます。夜。

import csv 
import os 
from tkinter import * 
import time 



with open ("TP.csv", "w") as db: 
    writer = csv.writer(db) 
    writer.writerow(["DATE", "INPUT"])# Create the file with this as heading 


def current_date_time(): # the time saves only in am aven when i perform the task at night 
    display = time.strftime('%d/%m/%y %I:%M:%S', time.localtime()) 
    with open ("TP.csv", "a") as csvfile: 
     w = csv.writer(csvfile) 
     w.writerow([display]) 


def save_print_data(): 
    global e3 
    data = e3.get() 
    with open ("TP.csv", "a") as savedb: 
     w = csv.writer(savedb) 
     w.writerow([data]) 


root = Tk() 
root.geometry("400x400") 


profile = StringVar() 
e3 = Entry(width=50, textvariable=profile) 

label1 = Label(root) 
b1 = Button(root, text="Print & save", command=lambda :[save_print_data(), 
current_date_time()]) 

e3.pack() 
label1.pack() 
b1.pack() 

root.mainloop() 
+0

「####」に関しては、列サイズを拡張する必要があります。今はあなたのコードを読んでいるだけです。 – Goralight

+0

また、あなたのcurrent_date_time'関数は、最後の2行をインデントしません。それは間違いですか? – Goralight

+0

'%I'は12時間制を使用します。 24時間表示をしたい場合は '%H'を使います。あるいは、 '%I'と組み合わせて'%p'を使用してAM/PMインジケータを取得してください。 –

答えて

0

@PM 2Ringのコメントを声に出しています。入力を1つのリストと1つの関数に結合し、それぞれを配置することができます。

import csv 
import os 
from tkinter import * 
import time 

with open("TP.csv", "w") as db: 
    writer = csv.writer(db) 
    writer.writerow(["DATE", "INPUT"])# Create the file with this as heading 

def save_print_data(): 
    global e3 
    data = e3.get() 
    display = time.strftime('%d/%m/%y %I:%M:%S%p', time.localtime()) 
    totalinput = [display, data] 
    with open("TP.csv", "a") as savedb: 
     w = csv.writer(savedb) 
     w.writerow(totalinput) 


root = Tk() 
root.geometry("400x400") 

profile = StringVar() 
e3 = Entry(width=50, textvariable=profile) 

label1 = Label(root) 
b1 = Button(root, text="Print & save", command=lambda: [save_print_data()]) 

e3.pack() 
label1.pack() 
b1.pack() 

root.mainloop() 

これは次のようになりますcsvファイルになります:私はcsvモジュールに精通していないです

DATE     INPUT 
06/11/17 10:58:17AM test 

をので、私は、列のサイズ変更についてはよく分からないが、私は今あなたのためチェックしています。しかし、このコードでは、#######を削除して、少なくとも日付を表示します。

+0

%pはあなたが書いた機能をより良く理解したいという意味です。あなたの答えは –

+0

@ADWAN '%p'が使用される時には単に時間に応じて' AM'または 'PM'を追加するだけです。私は助けることができてうれしい:) upvoteにも気をつけて! – Goralight

+0

この質問は投票が中止されました。私が再び繰り返さない理由を述べることが奨励されると思います。 –

関連する問題