ডেটটাইম.ডেট.টোডে () থেকে আজকের তারিখের সাথে তারিখের ক্ষেত্রের গণনা করা হচ্ছে?


10

আমি এমন একটি অংশে কাজ করছি যা আরকিপি ব্যবহার করবে। ক্যালকুলেটফিল্ড_ম্যানেজমেন্টটি বর্তমান তারিখটি বিশিষ্ট টেবিলটিতে যুক্ত করতে। আমি আন্তঃস্বাস্থ্যে অনেকদূর ঘুরেছি এবং এই সমস্যার সমাধান খুঁজে পাচ্ছি না।

এই কোডটি ব্যবহার করার সময়, আমি "12:00:00 AM" মান পাই

    input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
    today = datetime.date.today()
    dte = today.strftime('%m/%d/%Y')
    arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON")

এই কোডটি ব্যবহার করার সময়, আমি আজকের "10/07/2014" তারিখ থেকে "06/19/1905" মান পেয়েছি

    input = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
    today = datetime.date.today()
    dte = str(today)
    arcpy.CalculateField_management(input,"DTCARXTRCT",dte,"PYTHON")

আমি কী ভুল করছি তাতে কোন চিন্তা? আমি আপডেট কার্সার ব্যবহার এড়াতে চাই, তবে এটি যদি শেষ বিকল্প হয় তবে তা করব।


দেখা যাচ্ছে যে এই কোডটির পাইথন অংশটি সঠিকভাবে তারিখের অন্তরালে কাজ করছে। তবে আমি মনে করি সমস্যাটি কোডের আর্কি অংশের সাথে। "পাইথন" এর পরিবর্তে "ভিবি" চেষ্টা করুন এবং দেখুন এটি ক্ষেত্রের সঠিক মানটি আপডেট করে কিনা।
F_Kellner

এটি সমস্যার সমাধান করেনি, তবে 12:00:54 এএম এ প্রদর্শিত মানটি পরিবর্তন করার অদ্ভুত ফলাফল পেয়েছে।
অধ্যায় বিশ্লেষণ

উত্তর:


10

একটি আপডেট কার্সার 100% সময় ফিল্ড ক্যালকুলেটর সম্পাদন করবে।

আপনাকে এটি প্রকাশ হিসাবে লিখতে হবে:

import arcpy, datetime

fc = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
field = "DTCARXTRCT"
exp = '''def add_date():
  import time
  return time.strftime("%Y/%m/%d")'''

arcpy.CalculateField_management(fc, field, 'add_date()',
                                'PYTHON', exp)
print 'done'

ডেটটাইম.ডেট.টোডে () ফিল্ড ক্যালকুলেটরে কাজ করেনি, স্ট্রফটাইমে স্যুইচ করেছে।

বা, আপনি যদি নিজের ভেরিয়েবলগুলিকে এখানে খাওয়ানোর জন্য আরও ভাল উপায়ে করতে চান তবে একটি কার্সার ব্যবহার করুন:

import arcpy, datetime

fc = r'C:\GIS\CARGIS\SHAPES.gdb\CRASH_ON_2013'
field = "DTCARXTRCT"
with arcpy.da.UpdateCursor(fc, [field]) as rows:
    for row in rows:
        rows.updateRow([datetime.date.today()])
print 'done'

আমি এই দুটিই পরীক্ষা করেছিলাম এবং তারা দুর্দান্ত কাজ করে। ধন্যবাদ! সাইড নোটে, আমি আপডেট কার্সারটি ব্যবহার করতে চাই না কারণ এটি তুলনামূলকভাবে সহজ হওয়া উচিত এমন কিছু জন্য আরও লেখার প্রয়োজন। এটি হতে পারে যে আমি অজগর থেকে নতুন এবং ফাংশনটির দরকারীতা বুঝতে পারি না। প্যাকেজড জিপি সরঞ্জাম ব্যবহার করে এর মুখোমুখি কার্সারটি ব্যবহার করার চেয়ে আমার কাছে আরও বোধগম্য হয়। থটস?
বিশ্লেষণ

2
এটি সম্পূর্ণ বোধগম্য। আমি যখন পাইথন দিয়ে প্রথম শুরু করছিলাম তখন আমি কার্সারগুলিকে ভয় পেয়েছিলাম। যাইহোক, আপনি পাইথনের সাথে আরও স্বাচ্ছন্দ্য বঞ্চিত হওয়ার সাথে সাথে আমি মনে করি যে আপনি কার্সারগুলি অনেক বেশি নমনীয় পাবেন। এছাড়াও, আমি আমার মূল উত্তরে যেমন উল্লেখ করেছি, কার্সারগুলির আরও ভাল পারফরম্যান্স রয়েছে। আমি যে কাউন্টিতে কাজ করতাম, একজন জিআইএস পরামর্শদাতা খুব দীর্ঘ প্রক্রিয়াটির জন্য একটি স্ক্রিপ্ট লিখেছিলেন যা ফিল্ড ক্যালকুলেটরটি বহুবার ব্যবহার করেছিল এবং এটি চালাতে 2 ঘন্টা সময় নিয়েছিল took পাইথনের সাথে যখন আমি আরও ভাল হয়ে উঠি তখন আমি স্ক্রিপ্টটি আবার লিখলাম এবং ফিল্ড ক্যালকের পরিবর্তে কার্সার ব্যবহার করেছি এবং এটি 15 মিনিটের নিচে চলে গেছে।
ক্রমাচকি

0

ব্যবহার করার চেষ্টা করুন:

time.strftime("%Y/%m/%d")

এই অংশটি ব্যবহার করে কোডটি কোথায় পরিবর্তন করতে হবে তা নিশ্চিত। পুরো কোডটি দেখানোর জন্য আপনি কি আপনার পোস্ট সম্পাদনা করতে পারবেন?
বিশ্লেষণ

এই লাইনটি উপরের উত্তরের সাথে সংযুক্ত করা হয়েছে
ডেট্রয়েট_এইচসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.