[PYTHON] 100 Amateur-Sprachverarbeitungsklopfen: 12

Es ist ein Herausforderungsrekord von 100 Sprachverarbeitungsklopfen 2015. Die Umgebung ist Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64-Bit). Klicken Sie hier, um eine Liste der vergangenen Schläge anzuzeigen (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Kapitel 2: Grundlagen des UNIX-Befehls

hightemp.txt ist eine Datei, in der die Aufzeichnung der höchsten Temperatur in Japan im tabulatorgetrennten Format "Präfektur", "Punkt", "℃" und "Tag" gespeichert wird. Erstellen Sie ein Programm, das die folgende Verarbeitung ausführt, und führen Sie hightemp.txt als Eingabedatei aus. Führen Sie außerdem denselben Prozess mit einem UNIX-Befehl aus und überprüfen Sie das Ausführungsergebnis des Programms.

12. Speichern Sie die erste Spalte in col1.txt und die zweite Spalte in col2.txt

Speichern Sie die extrahierte Spalte jeder Zeile als col1.txt und die extrahierte Spalte 2 als col2.txt. Verwenden Sie zur Bestätigung den Befehl cut.

Der fertige Code:

main.py


# coding: utf-8

fname = 'hightemp.txt'
with open(fname) as data_file, \
		open('col1.txt', mode='w') as col1_file, \
		open('col2.txt', mode='w') as col2_file:
	for line in data_file:
		cols = line.split('\t')
		col1_file.write(cols[0] + '\n')
		col2_file.write(cols[1] + '\n')

Ausführungsergebnis:

col1.txt


Präfektur Kochi
Saitama
Präfektur Gifu
Präfektur Yamagata
Präfektur Yamanashi
Präfektur Wakayama
Präfektur Shizuoka
Präfektur Yamanashi
Saitama
Präfektur Gunma
Präfektur Gunma
Präfektur Aichi
Präfektur Chiba
Präfektur Shizuoka
Präfektur Ehime
Präfektur Yamagata
Präfektur Gifu
Präfektur Gunma
Präfektur Chiba
Saitama
Präfektur Osaka
Präfektur Yamanashi
Präfektur Yamagata
Präfektur Aichi

col2.txt


Egawazaki
Kumagai
Tajimi
Yamagata
Kofu
Katsuragi
Tenryu
Katsunuma
Koshiya
Tatebayashi
Kamisatomi
Ainishi
Ushihisa
Sakuma
Uwajima
Sakata
Mino
Maebashi
Mobara
Hatoyama
Toyonaka
Otsuki
Tsuruoka
Nagoya

Der UNIX-Befehl wurde vom Shell-Skript bestätigt.

test.sh


#!/bin/sh

#Vergleich mit der Extraktion von col1
cut --fields=1 hightemp.txt > col1_test.txt
diff --report-identical-files col1.txt col1_test.txt

#Vergleich mit der Extraktion von col2
cut --fields=2 hightemp.txt > col2_test.txt
diff --report-identical-files col2.txt col2_test.txt

Ausführungsergebnis:

Terminal


Datei col1.txt und col1_test.txt ist das gleiche
Datei col2.txt und col2_test.txt ist das gleiche

Das Ergebnis war das gleiche.

Kurze und lange UNIX-Befehlsoptionen

UNIX-Befehlsoptionen werden häufig mit kurzen und langen Optionen kombiniert. Der längere ist leichter zu verstehen, daher wird bei diesem Klopfen der längere verwendet. Es ist jedoch einfacher, die häufig verwendeten einzugeben, wenn Sie sich an die kurzen erinnern.

Die kurzen Optionen für den diesmal verwendeten Befehl sind: Bitte überprüfen Sie "Mann" für Details.

Befehl Diesmal verwendete Optionen Kurze Option Bedeutung
cut --fields -f Feldnummer zum Ausschneiden
diff --report-identical-files -s Berichten Sie, wenn das Vergleichsergebnis dasselbe ist

Das ist alles für den 13. Schlag. Wenn Sie Fehler haben, würde ich mich freuen, wenn Sie darauf hinweisen könnten.

Recommended Posts

100 Amateur-Sprachverarbeitungsklopfen: 41
100 Amateur-Sprachverarbeitungsklopfen: 71
100 Amateur-Sprachverarbeitungsklopfen: 24
100 Amateur-Sprachverarbeitungsklopfen: 50
100 Amateur-Sprachverarbeitungsklopfen: 70
100 Amateur-Sprachverarbeitungsklopfen: 62
100 Amateur-Sprachverarbeitungsklopfen: 60
100 Amateur-Sprachverarbeitungsklopfen: 92
100 Amateur-Sprachverarbeitungsklopfen: 30
100 Amateur-Sprachverarbeitungsklopfen: 06
100 Amateur-Sprachverarbeitungsklopfen: 84
100 Amateur-Sprachverarbeitungsklopfen: 81
100 Amateur-Sprachverarbeitungsklopfen: 33
100 Amateur-Sprachverarbeitungsklopfen: 46
100 Amateur-Sprachverarbeitungsklopfen: 88
100 Amateur-Sprachverarbeitungsklopfen: 89
100 Amateur-Sprachverarbeitungsklopfen: 40
100 Amateur-Sprachverarbeitungsklopfen: 45
100 Amateur-Sprachverarbeitungsklopfen: 43
100 Amateur-Sprachverarbeitungsklopfen: 55
100 Amateur-Sprachverarbeitungsklopfen: 22
100 Amateur-Sprachverarbeitungsklopfen: 61
100 Amateur-Sprachverarbeitungsklopfen: 94
100 Amateur-Sprachverarbeitungsklopfen: 54
100 Amateur-Sprachverarbeitungsklopfen: 04
100 Amateur-Sprachverarbeitungsklopfen: 63
100 Amateur-Sprachverarbeitungsklopfen: 78
100 Amateur-Sprachverarbeitungsklopfen: 12
100 Amateur-Sprachverarbeitungsklopfen: 14
100 Amateur-Sprachverarbeitungsklopfen: 08
100 Amateur-Sprachverarbeitungsklopfen: 42
100 Amateur-Sprachverarbeitungsklopfen: 19
100 Amateur-Sprachverarbeitungsklopfen: 73
100 Amateur-Sprachverarbeitungsklopfen: 75
100 Amateur-Sprachverarbeitungsklopfen: 98
100 Amateur-Sprachverarbeitungsklopfen: 83
100 Amateur-Sprachverarbeitungsklopfen: 95
100 Amateur-Sprachverarbeitungsklopfen: 32
100 Amateur-Sprachverarbeitungsklopfen: 96
100 Amateur-Sprachverarbeitungsklopfen: 87
100 Amateur-Sprachverarbeitungsklopfen: 72
100 Amateur-Sprachverarbeitungsklopfen: 79
100 Amateur-Sprachverarbeitungsklopfen: 23
100 Amateur-Sprachverarbeitungsklopfen: 05
100 Amateur-Sprachverarbeitungsklopfen: 00
100 Amateur-Sprachverarbeitungsklopfen: 02
100 Amateur-Sprachverarbeitungsklopfen: 37
100 Amateur-Sprachverarbeitungsklopfen: 21
100 Amateur-Sprachverarbeitungsklopfen: 68
100 Amateur-Sprachverarbeitungsklopfen: 11
100 Amateur-Sprachverarbeitungsklopfen: 90
100 Amateur-Sprachverarbeitungsklopfen: 74
100 Amateur-Sprachverarbeitungsklopfen: 66
100 Amateur-Sprachverarbeitungsklopfen: 28
100 Amateur-Sprachverarbeitungsklopfen: 64
100 Amateur-Sprachverarbeitungsklopfen: 34
100 Amateur-Sprachverarbeitungsklopfen: 36
100 Amateur-Sprachverarbeitungsklopfen: 77
100 Amateur-Sprachverarbeitungsklopfen: 01
100 Amateur-Sprachverarbeitungsklopfen: 16
100 Amateur-Sprachverarbeitungsklopfen: 27