什么是关于Python和CPython (Jython,IronPython)的所有这些大惊小怪,我不明白:
python.org提到CPython是:
Python的"传统"实现(绰号CPython)
CPython是Python的默认字节码解释器,用C语言编写.
老实说,我没有得到这两个解释实际上意味着什么,但我认为,如果我使用CPython,这意味着当我运行示例python代码时,它将它编译为C语言,然后执行它就好像它是C码
那么CPython究竟是什么呢?与python相比它有何不同?我是否应该使用CPython而不是Python,如果有的话,它有什么优势呢?
在Python中,如果您在未调用的情况下打开文件close(),或者关闭文件但未使用try- finally或" with"语句,这是一个问题吗?或者它是否足以作为编码实践依赖Python垃圾收集来关闭所有文件?例如,如果有人这样做:
for line in open("filename"):
# ... do stuff ...
Run Code Online (Sandbox Code Playgroud)
...这是一个问题,因为文件永远不会被关闭,并且可能发生一个阻止它被关闭的异常?或者它肯定会在for声明结束时关闭,因为文件超出了范围?
我在VC++中用fopen()打开了很多文件,但过了一段时间它就失败了.
您可以同时打开的文件数量是否有限制?
我正在使用以下命令从 Python 中的 .txt 文件中读取一些数据:
fileData = open("file.txt", "rb").read()
Run Code Online (Sandbox Code Playgroud)
我知道你应该总是关闭打开的文件,我假设在这种情况下文件保持打开状态。有没有办法关闭文件而不将其分配给变量?
我想避免:
openedFile = open("file.txt", "rb")
fileData = openedFile.read()
openedFile.close()
Run Code Online (Sandbox Code Playgroud)
并且:
with open("file.txt", "rb") as openedFile:
fileData = openedFile.read()
Run Code Online (Sandbox Code Playgroud)
这可能是不可能的,在这种情况下可以,但只是确保。
通常需要在文件对象上调用.close()方法或使用"with open"构造来确保它被关闭.
但是,我想知道写入这样的文件是否会使文件关闭:
open(path,'w').writelines(fileContents)
Run Code Online (Sandbox Code Playgroud)