0

を含むテキスト ファイル (test.txt) があります。

text1 text2 text text text

以下は私のコードです:

import codecs
BOM = codecs.BOM_UTF8.decode('utf8')
name = (raw_input("Please enter the name of the file: "))

with codecs.open(name, encoding='utf-8') as f:
    words=[]            #define words here
    for line in f:
        line = line.lstrip(BOM)
        words.extend(line.split())        #append words from each line to words  

if len(words) > 2:
    print 'There are more than two words'
    firstrow = words[:2]
    print firstrow                #indentation problem here
elif len(words) <2:                    #use if
    print 'There are under 2 words, no words will be shown'

raw_input("Press return to close this window...")

.py ファイルを実行するとき、コマンド ウィンドウを開いたままにして、すべての出力を表示できるようにしたいのですが、何らかの理由ですぐに閉じてしまい、これをシェルで実行すると機能します。何らかの理由で、通常のように raw_input が機能していません。Pythonでの2日目なので、まだ初心者です!

助けてくれてありがとう

4

2 に答える 2

1

どのエラーが発生するかを確認できるように、少なくともファイル読み取りコードをtry/exceptブロックに配置する必要があります。

import codecs

BOM = codecs.BOM_UTF8.decode('utf8')
name = raw_input("Please enter the name of the file: ")

try:
  with codecs.open(name, encoding='utf-8') as f:
    words=[]            #define words here
    for line in f:
        line = line.lstrip(BOM)
        words.extend(line.split())
except Exception as details:
  print "Unexpected error:", details
  raw_input("Press return to close this window...")
  exit(1)

if len(words) > 2:
    print 'There are more than two words'
    firstrow = words[:2]
    print firstrow
elif len(words) <2:                    #use if
    print 'There are under 2 words, no words will be shown'

raw_input("Press return to close this window...")

存在しないファイル名でこれを試してみると:

Please enter the name of the file: bla
Unexpected error: [Errno 2] No such file or directory: 'bla'
Press return to close this window...
于 2012-09-24T17:23:27.403 に答える
1

初心者の質問、初心者の答え!

.pyのディレクトリにテキストファイルがないのはシェルパスだけでした。そのため、そこで機能していました。

于 2012-09-24T16:27:29.570 に答える