वर्तमान कोड:

filepath = "C:/Bg_Log/KLBG04.txt"
with open(filepath) as fp:
    lines = fp.read().splitlines()
    with open(filepath, "w") as fp:
        for line in lines:
            print("KLBG04",line,line[18], file=fp)

आउटपुट:

KLBG04 20/01/03 08:09:13 G0001 G

कॉलम को इधर-उधर ले जाने के लिए लचीलेपन की आवश्यकता होती है और सरणी या सूची के साथ नीचे दिखाए गए दिनांक में हेरफेर भी करता है

KLBG04 03/01/20 G0001 G 08:09:13
0
Praveen .S 25 अक्टूबर 2020, 06:37

4 जवाब

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

आपने नमूना डेटा प्रदान नहीं किया, लेकिन मुझे लगता है कि यह काम कर सकता है:

filepath = "C:/Bg_Log/KLBG04.txt"
with open(filepath) as fp:
    lines = fp.read().splitlines()
    with open(filepath, "w") as fp:
        for line in lines:
            ln = "KLBG04 " + line + " " + line[18]  # current column order
            sp = ln.split()  # split at spaces
            dt = '/'.join(sp[1].split('/')[::-1])  # reverse date
            print(sp[0],dt,sp[3],sp[-1],sp[-2]) # new column order
            # print("KLBG04",line,line[18], file=fp)
0
Mike67 25 अक्टूबर 2020, 07:29

यह कोशिश करें `

for line in lines:
    words = line.split()  # split every word
    date_values = words[0].split('/') # split the word that contains date
    
    #create a dictionary as follows
    date_format = ['YY','DD','MM']
    date_dict = dict(zip(date_format, date_values))
    
    #now create a new variable with changed format
    new_date_format = date_dict['MM'] + '/' + date_dict['DD'] + '/' + date_dict['YY']
    print(new_date_format)
    
    #replace the first word [index 0 is having date] with new date format
    words[0] = new_date_format
    
    #join all the words to form a new line
    new_line = ' '.join(words)
    print("KLBG04",new_line,line[18])

`

0
Prem Anand 25 अक्टूबर 2020, 07:51

आप आउटपुट को एक स्ट्रिंग के रूप में ही क्यों नहीं स्टोर करते हैं और प्रत्येक स्थान पर स्ट्रिंग को विभाजित करने के लिए split() विधि का उपयोग करते हैं और फिर इंडेक्स 1 (सूचकांक जिसमें तारीख होगी) के लिए दूसरी स्प्लिट विधि का उपयोग करें और इसे विभाजित करें फिर से प्रत्येक / पर (ताकि आप तारीख में हेरफेर कर सकें)।


for line in lines:
        String output ="KLBG04",line,line[18], file=fp   # Rather than printing store the output in a string #
x = output.split(" ")
date_output = x[1].split("/")
# Now you can just manipulate the data around and print how you want to #

0
Recondit 25 अक्टूबर 2020, 07:31

पहले पंक्ति को split() करने का प्रयास करें, फिर सूची को अपने इच्छित क्रम में प्रिंट करें

from datetime import datetime # use the datetime module to manipulate the date

filepath = "C:/Bg_Log/KLBG04.txt"
with open(filepath) as fp:
    lines = fp.read().splitlines()
    with open(filepath, "w") as fp:
        for line in lines:
            date, time, venue = line.split(" ") # split the line up
            date = datetime.strptime(date, '%y/%m/%d').strftime('%d/%m/%y') # format your date
            print("KLBG04", date, venue, venue[0], time, file=fp) # print in your desired order
0
burningalc 25 अक्टूबर 2020, 07:28