मैं अजगर के लिए नया हूं और मैं एक JSON फ़ाइल में पढ़ने की कोशिश कर रहा हूं, कि अभी के लिए मैं बिना किसी बदलाव के एक नई फाइल को लिख सकता हूं। मैं अजगर पैकेज का उपयोग करने का प्रयास कर रहा हूं ऐसा करने के लिए क्लिक करें लेकिन त्रुटियों में चलते रहें।

मुझे यकीन है कि यह अपेक्षाकृत बुनियादी है लेकिन किसी भी मदद की सराहना की जाएगी। मैंने जिस कोड की कोशिश की है उसका नवीनतम संस्करण नीचे है।

 import json
 import os
 import click


 def dazprops():
     """Read Daz3D property File"""
     path = click.prompt('Please specify a location for the Daz3D Properties File')
     path = os.path.realpath(path)
     #dir_name = os.path.dirname(path)
     print(path)
     dazpropsf = open('path')
     print(dazpropsf)


 if __name__ == '__main__':
     dazprops()
-1
DanS 16 अक्टूबर 2021, 13:55
1
इनमें से किसी के लिए click कैसे प्रासंगिक है? जुसा फ़ाइल नाम को इसके बजाय पहले कमांड-लाइन तर्क के रूप में स्वीकार करता है। आप उस नाम से चर में स्ट्रिंग के बजाय शाब्दिक नाम path के साथ एक फ़ाइल खोलने का प्रयास कर रहे हैं।
 – 
tripleee
16 अक्टूबर 2021, 14:01
 – 
Håken Lid
16 अक्टूबर 2021, 14:01
मेरे पास अंततः लोड करने और आउटपुट करने के लिए 5 फाइलें हैं इसलिए क्लिक का उपयोग करने से मुझे थोड़ी अधिक कार्यक्षमता जोड़ने और अधिक प्रस्तुत करने योग्य दिखने की अनुमति मिलेगी। क्षमा करें यदि प्रश्न मूर्खतापूर्ण लगता है, तो यह कॉलेज के लिए है और मैं इसके लिए अपेक्षाकृत नया हूं।
 – 
DanS
16 अक्टूबर 2021, 14:37

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा कुछ आपको एक विचार दे सकता है कि click का उपयोग करके इसे कैसे प्राप्त किया जाए:

import click

def read_file(fin):
    content = None
    with open(fin, "r") as f_in:
        content = f_in.read()
    return content

def write_file(fout, content):
    try:
        print("Writing file...")
        with open(fout, "w") as f_out:
            f_out.write(content)
        print(f"File created: {fout}")
    except IOError as e:
        print(f"Couldn't write a file at {fout}. Error: {e}")

@click.command()
@click.argument('fin', type=click.Path(exists=True))
@click.argument('fout', type=click.Path())
def init(fin, fout):
    """
    FINT is an input filepath
    
    FOUT is an output filepath
    """
    content = read_file(fin)
    if content:
        write_file(fout, content)
                
if __name__ == "__main__":
    init()
0
Vlad Siv 16 अक्टूबर 2021, 15:14
1
वाह बहुत - बहुत धन्यवाद।
 – 
DanS
17 अक्टूबर 2021, 20:55
आपका स्वागत है
 – 
Vlad Siv
17 अक्टूबर 2021, 21:07