Python

Pythonプログラミング

サンプル
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import os
import csv

# 定数
USERS_FILE="./users.txt"

# ファイルの存在をチェックする
if os.path.isfile(USERS_FILE):
    print u"ユーザファイル(%s)が見つかりません。" USERS_FILE
    sys.exit(1)

# ファイルを読み込んでリスト(配列)に格納する。
users=[]  # リストの初期化
f = open(USERS_FILE)
for l in f:
    users.append(l)

    * 省略した記述法
    for l in open(USERS_FILE).readlines()
        users.append(l.rstrip())
    
    * さらにリスト内包表記にて1行で記述できる
    users = [ l.rstrip() for l in open(USERS_FILE).readlines() ]
    
    ** rstrip() は改行コードを取り除く
    ** さらにfor文内に条件文を加えることができる
       改行のみの行はスキップする場合
       users = [ l.rstrip() for l in open(USERS_FILE).readlines() if l.rstrip().strip() ]
       * if l.rstrip().strip()
         rstrip()により改行コードを取り除く
         strip()により前後の空白を取り除く
         結果、空白意外の(値がある)場合 True になるので
         if の条件となり値がリストに格納される。
         Nullの場合は if = false になるので値は格納されない。
    


# OSコマンドを実行する
    CMD = "htpasswd"
    HTPASSWD_FILE = "./.htpasswd"
 
    for l in open(USERS_FILE).readlines():
        if (not l.rstrip().strip() or       # 空白行はスキップ
            not l.split(",")[1].strip()):   # パスワードなしユーザはスキップ
            continue
        cmd = [os.path.abspath(CMD),'-bm',HTPASSWD_FILE,l.split(",")[0],l.split(",")[1]]
        os.system(" ".join(cmd))
        
        * if 文中に改行を入れる場合は()で囲む
        * OSコマンドを実行する場合は os.system() を使う
        * 配列を指定文字列で結合する場合 " ".join(cmd) を使う。
        
        


# 多次元配列を使用する

mlt_users=[[] for i in range(len(users))]



先頭へ

      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google