Python 2> Implementierung> {Führenden Leerraum löschen | Markdown-Header hinzufügen (###)} | Beispiel für das Löschen von Dateiinhalten

Betriebsumgebung


Xeon E5-2620 v4 (8 Kerne) x 2
32GB RAM
CentOS 6.8 (64bit)
openmpi-1.8.x86_64 und seine-devel
mpich.x86_64 3.1-5.el6 und seine-devel
gcc version 4.4.7 (Und Gfortran)
NCAR Command Language Version 6.3.0
WRF v3.7.Verwende 1.
Python 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) 
Python 3.6.0 on virtualenv

Verwandte: GAMESS> Ausgabedateielemente

Spezifikation

Angenommen, vor einem bestimmten Zeichen stehen mehrere Leerzeichen.

$ cat sample.in 
   A B C
  D E F
G    H I

Ich möchte das obige Format konvertieren in:

$ cat sample.md 
###A B C
###D E F
###G    H I

code

toMarkdown_170829.py


from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
import subprocess
import sys

# On Python 2.6.6

# coding rule:PEP8

# { Configuration----
# Set strings' lists for GAMESS output
targets = ("A B C",
           "D E F",
           "G    H I"
           )
# } Configuration----

if len(sys.argv) < 3:
    print('ERROR: invalid runtime parameter')
    print('\ntype:')
    print('python %s [input file] [output file]' % sys.argv[0])
    sys.exit()

IN_FILE = sys.argv[1]
OUT_FILE = sys.argv[2]
WRK_FILE = 'wrk.md'

for elem in targets:
    # 1. replace
    cmd = "sed 's/ *%s/###%s/g' %s > %s" % (
        elem, elem, IN_FILE, WRK_FILE)
    # print(cmd)  # for debug
    subprocess.call(cmd, shell=True)
    # 2. move
    # because (sed 's/A/B/g' in > in) will delete [in] file
    cmd = 'mv %s %s' % (WRK_FILE, OUT_FILE)
    subprocess.call(cmd, shell=True)

    # sys.exit()  # for debug
    IN_FILE = OUT_FILE

run


$ python toMarkdown_170829.py sample.in sample.md

Was mir in sed aufgefallen ist

Wenn Sie sed's / A / B / g'out.md> out.md ausführen, verschwindet der Inhalt von out.md. Daher verwendet die obige Implementierung eine temporäre Datei [WRK_FILE].

Referenz

Recommended Posts

Python 2> Implementierung> {Führenden Leerraum löschen | Markdown-Header hinzufügen (###)} | Beispiel für das Löschen von Dateiinhalten
Einfache Verschlüsselung von Dateiinhalten (Python)
Vorlage des Python-Skripts zum Lesen des Inhalts der Datei