Datetime nomi va subfile katalogida dir (Python)

Hozirda Python v2.7-dan katalog nomi bilan sanasi va vaqti (masalan 27-10-2011 23:00:01) yordamida Linuxda katalog yaratmoqchiman. Buning uchun mening kodim quyidagicha: -

import time
import os

dirfmt = "/root/%4d-%02d-%02d %02d:%02d:%02d"
dirname = dirfmt % time.localtime()[0:6]
os.mkdir(dirname)

Ushbu kod yaxshi ishlaydi va kerakli katalogni hosil qiladi. Shunday bo'lsa-da, keyinchalik men istagan narsani, bu katalog ichida ikkita csv faylini va bir xil nomdagi log faylini yaratadi. Endi katalog nomi dinamik tarzda yaratilganligi sababli, ushbu fayllarni yaratish uchun ushbu katalogga qanday o'tish kerakligiga ishonch hosil qilmayman. Menga uchta fayl bilan birgalikda bir xil ismga ega bo'lishni istayman (CSV fayllari bir harf bilan oldindan qo'shiladi). Misol uchun, yuqorida berilgan bo'lsa, "27-10-2011 23:00:01" deb nomlangan bir katalogni va undan keyin, "a27-10-2011 23: 00: 01.csv" deb nomlangan ikkita csv faylini istayman "va" b27-10-2011 23: 00: 01.csv "va" 27-10-2011 23: 00: 01.log "deb nomlangan jurnal fayli.

Fayl yaratilishlari uchun kodim quyidagicha: -

csvafmt = "a%4d-%02d-%02d %02d:%02d:%02d.csv"
csvbfmt = "b%4d-%02d-%02d %02d:%02d:%02d.csv"
logfmt = "%4d-%02d-%02d %02d:%02d:%02d.log"

csvafile = csvafmt % time.localtime()[0:6]
csvbfile = csvbfmt % time.localtime()[0:6]
logfile = logfmt % time.localtime()[0:6]

fcsva = open(csvafile, 'wb')
fcsvb = open(csvbfile, 'wb')
flog = open(logfile, 'wb')

Buni qanday qilib amalga oshirishim mumkinligi haqida biron-bir maslahat ikkinchisida bir xil bo'ladi. Men ushbu kodni bajarish uchun faqat ikkinchi bo'lakka ega bo'lishni qadriga etaman, lekin o'sha vaqt ichida ikkinchisi o'zgarishi mumkin. Buning asosiy sababi "time.localtime" ni o'zgartirishi mumkin, ammo ishonchim komil.

Rahmat

2

2 javoblar

Albatta, faqat o'zgarmaydigan vaqtni tejash va keyinchalik bu o'zgaruvchini almashtirish uchun foydalaning:

now = time.localtime()[0:6]
dirname = dirfmt % now
csvafile = os.path.join(dirname, csvafmt % now)
csvbfile = os.path.join(dirname, csvbfmt % now)
logfile = os.path.join(dirname, logfmt % now)

Csv va log fayllaringizga to'liq yo'lni yaratishni o'z ichiga oladi.

2
qo'shib qo'ydi
Rahmat. Yaratilgan katalogda ushbu fayllarni yaratish haqida nima deyish mumkin? Misol uchun, "logfmt" ni qanday qilib o'zgartirish mumkin, shuning uchun u yaratilgan katalogning yo'lini o'z ichiga oladimi?
qo'shib qo'ydi muallif thefragileomen, manba
Taqdirlangan. Rahmat. Muomalada ishladim.
qo'shib qo'ydi muallif thefragileomen, manba
@thefragileomen - javobingizni tahrirlash uchun siz csv va log fayllari uchun to'liq yo'llarni olishingiz mumkin.
qo'shib qo'ydi muallif Andrew Clark, manba
Muammo yo'q, men sizning yechimni javobning yonidagi tasdiq belgisini bosish orqali ishlaydigan qilib qabul qila olasiz.
qo'shib qo'ydi muallif Andrew Clark, manba

Bir marta time.localtime deb bir marta qo'ng'iroq qiling.

current_time = time.localtime()[0:6]

csvafile = csvafmt % current_time 
csvbfile = csvbfmt % current_time 
logfile = logfmt % current_time
0
qo'shib qo'ydi
Rahmat. Yaratilgan katalogda ushbu fayllarni yaratish haqida nima deyish mumkin? Misol uchun, "logfmt" ni qanday qilib o'zgartirish mumkin, shuning uchun u yaratilgan katalogning yo'lini o'z ichiga oladimi?
qo'shib qo'ydi muallif thefragileomen, manba
Python
Python
372 ishtirokchilar

Bu guruh python dasturlash tilini muhokama qilish uchun. Iltimos, o'zingizni hurmat qiling va faqat dasturlash bo'yicha yozing. Botlar mavzusini @botlarhaqida guruhida muhokama qling! FAQ: @PyFAQ Offtopic: @python_uz_offtopic

Python offtopic group !
Python offtopic group !
150 ishtirokchilar

@python_uz gruppasining offtop gruppasi. offtop bo'lsa ham reklama mumkin emas ) Boshqa dasturlash tiliga oid gruppalar @languages_programming