python无法识别新创建的文件

时间:2012-10-19 10:56:21

标签: python

我有一个python脚本,它将创建一个文本文件,然后在这个新创建的文件上运行命令。

问题是命令行无法识别新创建的文件,而且我收到文件为空的错误。

我的代码是这样的:

randomval是一个函数,它将创建随机字符并将它们作为字符串返回。

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


# do something with the `test.txt` file

但是我收到错误,文件test.txt为空。

有没有解决这个问题?

5 个答案:

答案 0 :(得分:3)

这是因为除非您刷新或关闭文件,否则操作系统不会将任何数据写入磁盘。要确保文件已关闭,请使用with语句:

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

print('Whoa, at this point the file descriptor is automatically closed!')

答案 1 :(得分: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:~$

答案 2 :(得分:2)

在尝试对新文件(text_file.flush())执行某些操作之前,您应该至少刷新缓冲区。最好的方法是关闭文件并在需要时重新打开它。

答案 3 :(得分:2)

执行f.close()然后再次打开它,因为text_file = open(“test.txt”,“r”)

答案 4 :(得分:1)

该文件的流仍然是打开的!试试:text_file.close()