অজগরটিতে বর্তমান তারিখ ও সময় দিয়ে একটি ফাইল নাম কীভাবে তৈরি করবেন?


173

এখানে একটি কার্যকরী কোড (সাফল্যের সাথে ফাইল তৈরি করুন)

sys.stdout = open('filename1.xml', 'w')

এখন আমি বর্তমান তারিখের সময়টির সাথে ফাইলটির নাম দেওয়ার চেষ্টা করছি (আমি পাইথনের বিশেষজ্ঞ নই)

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
sys.stdout = open(filename1 + '.xml', 'w')

আমি সঠিক তারিখ এবং সময় সহ একটি ফাইলের নাম লিখতে চাই, এটি একটি এক্সএমএল ফাইল, প্রোগ্রামটি ইতিমধ্যে তৈরি করেছে, আমার কেবল ফাইলটির নাম রাখা দরকার। উপরের কোডটি কাজ করছে না।

[সম্পাদনা] - ত্রুটি ফিরে এসেছে

  File "./fix.py", line 226, in <module>
    filenames = datetime.now().strftime("%Y%m%d-%H%M%S")
AttributeError: 'module' object has no attribute 'now'

আপনার =মধ্যে filenameএবংdatetime
জোয়েল করনেট

তা ছাড়া, "উপরের কোডটি ঠিক কীভাবে কাজ করছে না"?
জোয়েল করনেট

এই জাতীয় প্রশ্ন উপস্থাপন করার সময়, "কাজ না করা" যথেষ্ট নয়। কীভাবে এটি ব্যর্থ হয় তা বর্ণনা করুন।
ডেভিড হেফারনান

1
কাজ না করার অর্থ কী? এটি একটি ত্রুটি উত্পন্ন করে? আপনি ফলাফলটি কী আশা করবেন? এটি "এটি কাজ করে না" বলতে খুব বেশি সহায়ক হয় না।
জোয়েল করনেট

1
হ্যাঁ! আমি এই অংশটি বাদ দিয়ে ঠিক করেছি -> ডেটটাইম.নো () এটি -> ডেটটাইম.ডেটটাইম.নো () তবে আমি এখন সময় ব্যবহার করছি .. একবার দেখুন -> ফাইলের নামগুলি = সময়.স্ট্রফটাইম ("% Y% m % d-% এইচ% এম% s ") sys.stdout = খোলা (ফাইলের নামের + W '' .xml ',)
deepcell

উত্তর:


360

ব্যবহার না করার datetimeসময় এটি আপনার নির্দিষ্ট সময় এবং তারিখের ফর্ম্যাটটির সাথে স্ট্রিং পাওয়ার আপনার সমস্যার (আপনার প্রশ্নের জবাব দেয়) সমাধান করে :

import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr

উৎপাদনের:

20120515-155045

যাতে আপনার ফাইলের নাম এই স্ট্রিং যুক্ত করতে বা ব্যবহার করতে পারে।


1
Gotcha! আমার স্ক্রিপ্টে সময় সংজ্ঞায়িত করা হয়নি এবং আমি সময়সীমার ব্যবহার করার চেষ্টা করছিলাম (কাজ নয়, আমি তা করি না কেন) তবে সময়ের সাথে সাথে এটি এখন পরিষ্কার হয়ে গেছে, ফাইলের নামটি সাফল্যের সাথে তৈরি করা হয়েছে। তোমাকে অনেক ধন্যবাদ!
ডিপসেল

2
আমি জানি না কেন আপনি উত্তরটি কেন গ্রহণ করেছেন যখন দুটি উত্তর রয়েছে যা পুরোপুরিভাবে ব্যাখ্যা করে যে প্রশ্নের কোডটিতে কী ছিল। লেভন যেভাবে এটি করেছিলেন, কিছুই তার বিরুদ্ধে নয়, এটি দুর্দান্ত কাজ করে তবে আপনি যখন "কাজ করবেন না, আমি কেন জানি না" বলি, এটি অদ্ভুত বলে মনে হয় কারণ আপনার উত্তরগুলি কেন তা ব্যাখ্যা করে।
ডেভিড হেফারনান

যখন আমি উপরের কোডটি চেষ্টা করেছি, আমি একটি পেয়েছি, "E AttributeError: 'int' অবজেক্টটির কোনও 'fআরফটাইম' ত্রুটি নেই।
rwbyrd

@ আরডবাইর্ড এটি অদ্ভুত, আমি পাইথন ৩.৪.১ এবং ২.7..6 সহ ঠিক সেই ৩ টি লাইন (অনুলিপি-পেস্ট) চেষ্টা করেছি এবং এটি কার্যকর - যদিও পাইথন 3 এর সাথে আপনাকে ব্যবহার করা দরকার print(timestr)। আপনি এই লেখাটি উপর থেকে অনুলিপি করেছেন? অন্যথায় সম্ভবত টাইপো?
লেভন

3
@rwbyrd আপনার কাছে সম্ভবত "টাইম" নামক একটি ইনট ভেরিয়েবল রয়েছে যেখানে timeমডিউলটি ছায়া দিচ্ছে somewhere
থমাস

38

nowdatetimeমডিউলে ক্লাসে একটি ক্লাস পদ্ধতি datetime। সুতরাং আপনার প্রয়োজন

datetime.datetime.now()

অথবা আপনি একটি ভিন্ন আমদানি ব্যবহার করতে পারেন

from datetime import datetime

এইভাবে সম্পন্ন করা আপনাকে datetime.nowপ্রশ্নের কোড অনুসারে ব্যবহার করতে দেয় ।


35

এই লাইনটি পরিবর্তন করুন

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")

প্রতি

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")

অতিরিক্ত নোট করুন datetime। অথবা, আপনার পরিবর্তন import datetimeকরতেfrom datetime import datetime


1
@ B4NZ41 এটি সত্য নয়। ত্রুটি বার্তাটি পরিষ্কার করে দেয় যে আপনার কোডটি import datetimeকোথাও রয়েছে।
ডেভিড হেফারনান

;) দুঃখিত! এখন আমি আমদানির সময় ব্যবহার করছি, আমি আমদানির
তারিখের

2
@ B4NZ41 আপনি এখন কী করছেন তা বিবেচ্য নয়। এটি প্রশ্নে কি তা গুরুত্বপূর্ণ।
ডেভিড হেফারনান

16

এই এক অনেক বেশি মানুষের পঠনযোগ্য।

from datetime import datetime

datetime.now().strftime("%d-%m-%Y_%I-%M-%S_%p")
'15-08-2019_11-57-48_PM'

হ্যাঁ তবে নাম অনুসারে বাছাই করা কালানুক্রমিকভাবে বাছাই করবে না
পিটার

আমার ধারণা, ডিডিএমএমওয়াইয়ের পরিবর্তে কেবল ওয়াইওয়াইএমডিডি দরকার?
দেব আগরওয়াল

5

আমি অবাক হলাম এমন কোনও একক বিন্যাস নেই যা 'ফাইল-এনেম যোগ করার জন্য' (এবং নিরাপদ) ফেরত দেয় - সময়ের ফর্ম্যাট, আমরা কেবল লিখতে পারি FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S"

2

ওয়েব স্ক্র্যাপ থেকে ফাইল ডাম্প করার জন্য ফোল্ডারের নামটিতে আমার তারিখ-সময় স্ট্যাম্প অন্তর্ভুক্ত করার জন্য এখানে কিছু দরকার।

# import time and OS modules to use to build file folder name
import time
import os 

# Build string for directory to hold files
# Output Configuration
#   drive_letter = Output device location (hard drive) 
#   folder_name = directory (folder) to receive and store PDF files

drive_letter = r'D:\\' 
folder_name = r'downloaded-files'
folder_time = datetime.now().strftime("%Y-%m-%d_%I-%M-%S_%p")
folder_to_save_files = drive_letter + folder_name + folder_time 

# IF no such folder exists, create one automatically
if not os.path.exists(folder_to_save_files):
    os.mkdir(folder_to_save_files)

আপনার পথ তৈরির একটি নিরাপদ উপায়, হতে পারে: folder_to_save_files = shutil.os.path.join(drive_letter, folder_name +folder_time) ( import shutilবিবৃতিটিও বিবৃতিটি প্রতিস্থাপন করতে পারে import os)
oneindelijk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.