python无法识别新创建的文件

python无法识别新创建的文件,python,Python,我有一个python脚本,它将创建一个文本文件,然后在这个新创建的文件上运行一个命令 问题是命令行无法识别新创建的文件,并且我得到一个错误,该文件为空 我的代码是这样的: randomval是一个创建随机字符并将其作为字符串返回的函数 text_file = open("test.txt", "w") text_file.write(randomval(20,10)) # do something with the `test.txt` file 但是我得到一个错误,文件test.txt是

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

问题是命令行无法识别新创建的文件,并且我得到一个错误,该文件为空

我的代码是这样的:

randomval
是一个创建随机字符并将其作为字符串返回的函数

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


# do something with the `test.txt` file
但是我得到一个错误,文件test.txt是空的


还有什么办法解决这个问题吗?

别忘了关闭文件:

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:~$

不要忘记关闭文件:

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:~$

在尝试使用新文件(
text\u file.flush()
)之前,至少应该刷新缓冲区。最好是在需要时关闭文件并重新打开。

在尝试对新文件执行操作之前,至少应该刷新缓冲区(
text\u file.flush()
)。最好是关闭文件,并在需要时重新打开。

文件流仍然打开!!!!只需尝试:
text\u file.close()

指向该文件的流仍处于打开状态!!!!只需尝试:
text\u file.close()

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

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

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

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

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

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

做一个
f.close()
,然后以text\u file=open(“test.txt”,“r”)

的形式再次打开它。做一个
f.close()
,然后以text\u file=open(“test.txt”,“r”)

的形式再次打开它。是否关闭了文件
text\u文件。close()
Mmmm,否。。事实上,这解决了我的问题:)谢谢当我们在做这件事的时候,你应该总是使用
和open(…)作为文本文件:
因为你不能忘记关闭它在这种情况下,它实际上更容易,即使发生异常或非平凡的控制流,它也能工作。你关闭了文件
文本文件.close()
Mmmm,没有。。事实上,这解决了我的问题:)谢谢,当我们在做这件事的时候,你应该总是使用
和open(…)作为文本文件:
因为在这种情况下你不能忘记关闭它,它实际上更容易,而且即使发生异常或非平凡的控制流,它也能工作。