Python File Slurp
是否有一个行来读取python中文件的所有行,而不是标准行:
1 2 3 | f = open('x.txt') cts = f.read() f.close() |
似乎这样做太频繁了,必须有一个一行。有什么想法吗?
这将在python 2.61及更高版本中将内容分解为一个字符串:
1 | with open('x.txt') as x: f = x.read() |
这将创建一个行列表:
1 | with open('x.txt') as x: f = x.readlines() |
号
这些方法保证在读取之后立即关闭输入文件。
脚注:
不保证立即关闭的旧方法是使用此方法创建单个字符串:
1 | f = open('x.txt').read() |
创建一个行列表:
1 | f = open('x.txt').readlines() |
。
实际上,在某些版本的cpython中,它会立即关闭,但在jython、Ironpython和未来版本的cpython中,"只有在垃圾收集器接近它时才会关闭"。
如果您使用python3,请确保您正确遵守文件的输入编码,例如:
1 2 3 | import codecs with codecs.open(filename, 'r', encoding="utf8") as file: cts = file.read() |
在python3编解码器列表中查找编解码器名称列表。(无论何时需要任何非ASCII输入,python2也建议使用该机制)