[PYTHON] 100 coups de traitement du langage amateur: 12

C'est un record de défi de 100 langues de traitement knock 2015. L'environnement est Ubuntu 16.04 LTS + Python 3.5.2 : : Anaconda 4.1.1 (64 bits). Cliquez ici pour une liste des coups passés (http://qiita.com/segavvy/items/fb50ba8097d59475f760).

Chapitre 2: Principes de base des commandes UNIX

hightemp.txt est un fichier qui stocke l'enregistrement de la température la plus élevée au Japon dans le format délimité par des tabulations de «préfecture», «point», «℃» et «jour». Créez un programme qui effectue le traitement suivant et exécutez hightemp.txt en tant que fichier d'entrée. De plus, exécutez le même processus avec une commande UNIX et vérifiez le résultat de l'exécution du programme.

12. Enregistrez la première colonne dans col1.txt et la deuxième colonne dans col2.txt

Enregistrez la colonne extraite de chaque ligne sous col1.txt et la colonne extraite 2 sous col2.txt. Utilisez la commande cut pour confirmation.

Le code fini:

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')

Résultat de l'exécution:

col1.txt


Préfecture de Kochi
Saitama
Préfecture de Gifu
Préfecture de Yamagata
Préfecture de Yamanashi
Préfecture de Wakayama
Préfecture de Shizuoka
Préfecture de Yamanashi
Saitama
Préfecture de Gunma
Préfecture de Gunma
Préfecture d'Aichi
Préfecture de Chiba
Préfecture de Shizuoka
Préfecture d'Ehime
Préfecture de Yamagata
Préfecture de Gifu
Préfecture de Gunma
Préfecture de Chiba
Saitama
Préfecture d'Osaka
Préfecture de Yamanashi
Préfecture de Yamagata
Préfecture d'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

La commande UNIX a été confirmée par le script shell.

test.sh


#!/bin/sh

#Comparaison avec l'extraction de col1
cut --fields=1 hightemp.txt > col1_test.txt
diff --report-identical-files col1.txt col1_test.txt

#Comparaison avec l'extraction de col2
cut --fields=2 hightemp.txt > col2_test.txt
diff --report-identical-files col2.txt col2_test.txt

Résultat de l'exécution:

Terminal


Fichier col1.txt et col1_test.txt est le même
Fichier col2.txt et col2_test.txt est le même

Le résultat était le même.

Options courtes et longues de la commande UNIX

Les options de commande UNIX sont souvent associées à des options courtes et longues. Le plus long est plus facile à comprendre, donc ce coup utilise le plus long. Cependant, il est plus facile de saisir ceux que vous utilisez souvent si vous vous souvenez des plus courts.

Les options courtes pour la commande utilisée cette fois sont: Veuillez vérifier man pour plus de détails.

commander Options utilisées cette fois Option courte sens
cut --fields -f Numéro de champ à découper
diff --report-identical-files -s Signaler lorsque le résultat de la comparaison est le même

C'est tout pour le 13e coup. Si vous avez des erreurs, je vous serais reconnaissant de bien vouloir les signaler.

Recommended Posts

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