स्ट्रिंग्स एक txt से पढ़ी जाती हैं। कोड इसमें पेज नंबर हटा देता है। यह काम करता हैं।

प्रश्न यह है कि प्रत्येक न्यूलाइन सिंबल को सम स्ट्रिंग में कैसे हटाया जाए। क्या प्रत्येक स्ट्रिंग की न्यूलाइन को हटाना संभव है जो अंकों और शब्दों को पूरे एक के रूप में एकजुट करने के लिए संख्या के साथ समाप्त होता है?


testfile.txt का उदाहरण:

0000.0000.3214.6550
Chineese citizen
0000.0000.1264.2020
Dodge Challenger

     1

वांछित output.txt:

0000.0000.3214.6550 Chineese citizen
0000.0000.1264.2020 Dodge Challenger

मैंने रेगेक्स की भी कोशिश की लेकिन यह पहली स्ट्रिंग के बाद हमेशा सबकुछ हटा देता है। इस तरह के रूप में।

x = 1
with open("testfile.txt", "r") as input:
    with open("out.txt", "w") as output:
        for line in input:
            line = line.strip() #whitespace clearing
        try:
            int(line)           #checking
        except ValueError:
            output.write(line + "\n")
            x + x + 1
        for line in input:
            line = line.replace("\n", "")
0
Alexander Larionov 31 मार्च 2018, 17:15

2 जवाब

इसके बारे में कैसे (कोई फैंसी चीजें नहीं):

with open("out.txt", "w") as output:
    odd_line = True
    with open("testfile.txt", "r") as input:
        for line in input:
            if odd_line:
                s = line.strip() # save to a variable
            else:
                output.write('{} {}'.format(s, line) # append to output after concatenating
            odd_line = not odd_line
2
mshsayem 31 मार्च 2018, 14:35

आपके द्वारा साझा किए गए पाठ का उपयोग करके निम्नलिखित को आपके पहले प्रश्न का उत्तर देना चाहिए:

स्ट्रिंग में प्रत्येक न्यूलाइन प्रतीक को कैसे हटाएं?

import io


text = """0000.0000.3214.6550
Chineese citizen
0000.0000.1264.2020
Dodge Challenger"""

with io.StringIO(text) as input, open("out.txt", "w") as output:
    for i, line in enumerate(input, 1):
        if i % 2 != 0:
            print(line.strip("\n"), end="\t", file=output)
        else:
            print(line, end="", file=output)

यह enumerates पाठ की पंक्तियाँ और strips यदि पंक्ति संख्या विषम है। यह न्यूलाइन वर्णों को हटा देता है और print के उपयोग से, आप उन्हें टैब से बदल देते हैं। आप इस प्रतिस्थापन के लिए जो भी अन्य चरित्र चाहते हैं उसे चुन सकते थे।

क्या प्रत्येक स्ट्रिंग की न्यूलाइन को हटाना संभव है जो अंकों और शब्दों को पूरे एक के रूप में एकजुट करने के लिए संख्या के साथ समाप्त होता है?

with io.StringIO(text) as input, open("out.txt", "w") as output:
    for line in input:
        if line[-2].isdigit():
            print(line.strip("\n"), end="\t", file=output)
        else:
            print(line, end="", file=output)

यह पिछले वाले के समान ही है, केवल अंतर यह है कि यहां आप जांच कर रहे हैं कि प्रत्येक पंक्ति के न्यूलाइन वर्ण से पहले वर्ण एक अंक है या नहीं।

कृपया ध्यान दें कि यदि आप python2 का उपयोग कर रहे हैं, तो print फ़ंक्शन को आपकी स्क्रिप्ट के शीर्ष पर निम्नानुसार आयात करना होगा:

from __future__ import print_function

मुझे उम्मीद है कि यह उपयोगी साबित होगा।

0
Abdou 31 मार्च 2018, 14:49