2016-07-07 10 views
0

私は、ディレクトリからファイルを数え、.txtファイルから行を読み上げるためのコードを用意しています。ファイルを数えるMacとWindows Python

コードはMacでも問題なく動作しますが、パスを変更してもWindowsでは動作しません。 Macの

0 
1 
1 
3 
0 

は私が(正しい)出力を得る:Windows上で

import glob 
path = 'E:\calpy_em27_neu\spectra_out_demo\140803\*' 
files = glob.glob(path) 

with open('info.txt', 'rt') as infofile: 
    for count, line in enumerate(infofile): 
     print count 
print(len(files)) 

が、私は出力が得られます。これは、Windows上のコードである

0 
1 
2 
3 
4 

4本の線があるので、 infofileと呼ばれるディレクトリ内の4つのファイル。なぜこれがWindows上で正しく動作しないのか?

+0

は何を得る実際のWindows出力の3行目の '1'です、またはタイプミスということでしょうか?あなたが示したコードはおそらく '1'を出すことができないからです。 –

答えて

2

おそらく、バックスラッシュ文字をエスケープする必要があります。これらのいずれかを試してみてください。

path = r'E:\calpy_em27_neu\spectra_out_demo\140803\*' 
path = 'E:\\calpy_em27_neu\\spectra_out_demo\\140803\\*' 
path = 'E:/calpy_em27_neu/spectra_out_demo/140803/*' 
+0

はい、最初のものがすぐに機能しました!あなたはこれの推論を知っていますか? – alli

+0

@alli: "その言語で[定義されている](https://docs.python.org/2.0/ref/strings.html)なので"。あなたが好奇心を持っているならば、他の2人も同様に試してみてください。 – usr2564301

+0

うん!彼らはすべて働いた。どうもありがとうございます! – alli

関連する問題