1

テキスト ファイルを作成し、この新しく作成されたファイルに対してコマンドを実行する Python スクリプトがあります。

問題は、コマンド ラインが新しく作成されたファイルを認識せず、ファイルが空であるというエラーが表示されることです。

私のコードは次のようなものです:

randomvalランダムな文字を作成し、それらを文字列として返す関数です。

text_file = open("test.txt", "w")
text_file.write(randomval(20,10))


# do something with the `test.txt` file

しかし、ファイル test.txt が空であるというエラーが表示されます。

とにかくこれを解決する方法はありますか?

4

5 に答える 5

3

これは、ファイルをフラッシュまたは閉じない限り、OSがディスクにデータを書き込まないために発生します。ファイルが閉じていることを確認するには、次のwithステートメントを使用します。

with open("test.txt", "w") as f:
    f.write(randomval(20,10))

print('Whoa, at this point the file descriptor is automatically closed!')
于 2012-10-19T11:15:58.503 に答える
2

ファイルを閉じることを忘れないでください。

br@ymir:~$ python
Python 2.6.5 (r265:79063, Oct  1 2012, 22:04:36) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> file=open('foo.bar','w')
>>> file.write('42\n')
>>>  
[2]+  Stopped                 python
br@ymir:~$ cat foo.bar
br@ymir:~$ fg
python

>>> file.close()
>>> 
[2]+  Stopped                 python
br@ymir:~$ cat foo.bar
42
br@ymir:~$
于 2012-10-19T11:01:22.540 に答える
2

af.close()を実行してから、 text_file = open("test.txt", "r") として再度開きます

于 2012-10-19T11:19:23.930 に答える
2

少なくとも、新しいファイルで何かをしようとする前にバッファをフラッシュする必要があります ( text_file.flush())。最善の方法は、ファイルを閉じて、必要に応じて再度開くことです。

于 2012-10-19T11:02:59.207 に答える
1

ファイルへのストリームはまだ開いています!!!! ちょうど試して:text_file.close()

于 2012-10-19T11:11:17.500 に答える