1

私は次のことをしようとしていますが、エラーが発生しています。何が問題になっていますか?

1.引数に基づいて、ディレクトリとサブディレクトリ内の各ファイルを開きます

2.各ファイルに著作権情報が正確に3行含まれているかどうかを確認します

 Copyright (c) 2012 Company, Inc. 
 All Rights Reserved.
 Company Confidential and Proprietary.

コード:

import os
import sys
userstring="Copyright (c) 2012 Company, Inc.\nAll Rights Reserved.\nCompany Confidential and Proprietary."
print len(sys.argv)
print sys.argv[1]
if len(sys.argv) < 2:
    sys.exit('Usage: python.py <build directory>')
for r,d,f in os.walk(sys.argv[1]):
    for files in f:
        with open(os.path.join(r, files), "r") as file:
            if ''.join(file.readlines()[:3]).strip() != userstring:
                print files
4

1 に答える 1

1

おそらくこれらの行を変更することによって:

file = open(files, "r")
if userstring not in line:  #check if each file contains the lines
    print file

これらに:

with open(os.path.join(r, files), "r") as file:
    if ''.join(file.readlines()[:3]).strip() != userstring:
        print files

あなたはあなたの目標を達成します。しかし、ファイルを扱うときは、悪いファイル、悪いフォーマット、例外処理などに注意する必要があります.

于 2012-12-24T20:07:29.230 に答える