相关疑难解决方法(0)

在Python文件对象上使用迭代器时,是否需要close()

执行以下操作并不显式处理文件对象并调用其close()方法是不好的做法吗?

for line in open('hello.txt'):
    print line
Run Code Online (Sandbox Code Playgroud)

注意 - 这是针对尚未拥有该with语句的Python版本.

我问,因为Python文档似乎推荐这个: -

f = open("hello.txt")
try:
    for line in f:
        print line
finally:
    f.close()
Run Code Online (Sandbox Code Playgroud)

这似乎比必要的更冗长.

python iterator file

42
推荐指数
7
解决办法
4万
查看次数

如何找到选择整行来查找Python中的行中的子串

例如,我在文件中有以下几行:

  1. 汤姆是个男人
  2. 莎拉是个女人
  3. 亚历克斯也是一个人

我想搜索"Sara"但想要回归整体

   def findLine(self, str):
   ...
Run Code Online (Sandbox Code Playgroud)

当我打电话时findLine("Sara"),它会返回"2. Sara is a woman"

如何使用Python和正则表达式(或其他非正则表达式方法)实现此目的

python regex

1
推荐指数
1
解决办法
181
查看次数

单独open()是否保持文件句柄打开?

在执行完成后,单个调用open()而不将其分配给变量会关闭文件句柄吗?

import json
_keyfile = json.load(open("s3_key.json", "r"))
Run Code Online (Sandbox Code Playgroud)

如果你打电话给.read()呢?

import json
_keyfile = json.loads(open("s3_key.json", "r").read())
Run Code Online (Sandbox Code Playgroud)

python python-3.x

1
推荐指数
1
解决办法
41
查看次数

如果我打开文件而不分配文件,它会保持打开状态吗?

我知道

with open(my_file, 'r') as f:
    pass
Run Code Online (Sandbox Code Playgroud)

打开和关闭文件。也,

f = open(my_file, 'r'); f.close()
Run Code Online (Sandbox Code Playgroud)

一样。

那这个呢:

open(my_file, 'r')
Run Code Online (Sandbox Code Playgroud)

我的实际问题是这样的:

import json;
json.load(open(my_file, 'r')) 
Run Code Online (Sandbox Code Playgroud)

import json;
with open(my_file, 'r') as f:
    j = json.load(f)
Run Code Online (Sandbox Code Playgroud)

我猜从技术上讲,文件应该保持打开状态,但是我很确定,由于未分配文件对象,因此它立即被Python的垃圾收集器关闭了。

  1. 我对吗?
  2. 这是一个好习惯吗?
  3. 这里的Python版本之间有何区别?

python

1
推荐指数
1
解决办法
50
查看次数

Python I/O:目的与?

对于文件I/O的目的是什么:

with open
Run Code Online (Sandbox Code Playgroud)

我应该使用它而不是:

 f=open('file', 'w')
 f.write('foo)'
 f.close()
Run Code Online (Sandbox Code Playgroud)

python io

-1
推荐指数
1
解决办法
294
查看次数

标签 统计

python ×5

file ×1

io ×1

iterator ×1

python-3.x ×1

regex ×1