मुझे एक टेक्स्ट फ़ाइल को प्रारूपित करने की आवश्यकता है, लेकिन कुछ मान (6SF के लिए आवश्यक) शेष दस्तावेज़ के अनुरूप नहीं हैं। नीचे देखें:

import numpy as np     
A1=np.linspace(1., 10**15., 1000)
f = open('document.txt', 'w')
f.write('Document of values' + "\n")
f.write('Column 1' + "\t" + "\t" + 'Column 2' + "\t" + 'Column 3' + "\n")
for i in range(len(A1)):
    f.write(str("%.6g" % A1[i]) + "\t " + "\t" + str("%.6g" % A1[i]) + "\t" + "\t" + "\t" + str("%.6g" % A1[i]) +"\n")
f.close()

वर्तमान में मैं इस की तर्ज पर कुछ करने का प्रयास कर रहा हूं:

import numpy as np  
A1=np.linspace(1., 10**15., 1000)
A2=str(A1)
A3=str(A1)
for i in range(len(A2)):
    if 'e' in A2[i]:
        A3[i]=("%.6g" % A2[i])
    else:
        A3[i]=(("%.6g" % A2[i]) + "\t")

f = open('document.txt', 'w')
f.write('Document of values' + "\n")
f.write('Column 1' + "\t" + 'Column 2' + "\t" + 'Column 3' + "\n")
for i in range(len(A1)):
    f.write(str(A3[i]) + "\t" + "\t" + str("%.6g" % A1[i]) + "\t" + "\t" + "\t" + str("%.6g" % A1[i]) +"\n")
f.close()

कॉलम 1 के उन मानों में एक अतिरिक्त /t जोड़ने के लिए जिनमें e+xx मान नहीं है। आउटपुट एक .txt फ़ाइल में होना चाहिए। इसे कैसे प्राप्त किया जा सकता है?

0
CM92 27 अक्टूबर 2018, 20:26

1 उत्तर

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

क्या आप सुनिश्चित हैं, कि आपको अपने नंबरों को टैब से अलग करने की आवश्यकता है?

अलग-अलग टेक्स्ट एडिटर में टैब अलग दिखते हैं (कभी-कभी टैब = 4 स्पेस, कभी-कभी यह 2, और कभी-कभी यह 8)

सादे स्थानों के साथ आप आसानी से वह प्राप्त कर सकते हैं जो आप चाहते हैं।

बस अपने नंबरों को रिक्त स्थान के साथ वांछित लंबाई तक पैड करें।

आपके पास स्ट्रिंग्स के हिस्से के लिए फ़ॉर्मेटिंग है, आपको बस ljust या rjust string फ़ंक्शन का उपयोग करने की आवश्यकता है:

("%.6g" % x).rjust(8) - x = 0 के लिए या x = 999999.999999 के लिए हमेशा आपकी 8-वर्ण वाली स्ट्रिंग देगा

तो, इस निर्माण को कॉलम के लिए संयोजित करें, जिसे आपको बनाने की आवश्यकता है और आप ठीक हो जाएंगे!

0
MihanEntalpo 27 अक्टूबर 2018, 17:37