8

ファイル名に1〜32の番号があり、次のようなループで順番に開きたいもの:

i = 1
while i < 32:
filename = "C:\\Documents and Settings\\file[i].txt"
f = open(filename, 'r')
text = f.read()
f.close()

ただし、これは file1.txt、file2.txt などではなく、ファイル「file[i].txt」を探します。変数を二重引用符内の変数にするにはどうすればよいですか? はい、私はそれがインデントされていないことを知っています。

私はこれがうまくいくと思います:変数を含む他の文字列を構築するのと同じようにファイル名を構築します:

filename = "C:\\Documents and Settings\\file" + str( i ) + ".txt"

または、数値をフォーマットするためのオプションがさらに必要な場合:

filename = "C:\\Documents and Settings\\file%d.txt" % i
4

3 に答える 3

5

まず、ループを次のように変更するwhile i <= 32か、名前に 32 が含まれるファイルを除外します。2番目のオプションが機能するfilename = "C:\\Documents and Settings\\file%d.txt" % iはずです。

'file01.txt'、'file02.txt' のように、ファイル内の数字が 0 で埋められている場合は、%.2d単純な古い %d の代わりに使用できます。

于 2013-08-17T21:10:36.270 に答える