【发布时间】:2018-11-26 21:14:37
【问题描述】:
我正在尝试在 C:\reader\compressed\ 中测试运行我的程序,在那里我创建了两个测试文件“test.gzip”和“test.bz2”,但是当我运行 Reader 类时,我得到了模块阅读器没有属性“阅读器”。
我打开 python 以“导入阅读器”然后“r = reader.Reader('test.bz2')” 目录如下:
我可以导入我创建的所有模块。
import reader
import reader.compressed
import reader.compressed.gzipped
import reader.compressed.bzipped
这是我的 reader.py:
import os
from reader.compressed import gzipped, bzipped
extension_map = {
'.bz2': bzipped.opener,
'.gz': gzipped.opener,
}
class Reader:
def __init__(self, filename):
extension = os.path.splitext(filename)[1]
opener = extension_map.get(extension, open)
self.f = opener(filename, 'rt')
def close(self):
self.f.close()
def read(self):
return self.f.read()
我检查了我的模块以查看它们是否与要测试的新文件一起存在,这些文件应该返回消息。
>>> import reader
>>> r= reader.reader.Reader('test.gz')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'reader' has no attribute 'reader'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Develop\Python\reader\__init__.py", line 13, in
__init__
self.f = opener(filename, 'rt')
File"C:\Python\Python36\lib\gzip.py", line 53, in open
binary_file = GzipFile(filename, gz_mode, compresslevel)
File
"C:\Programs\Python\Python36\lib\gzip.py", line 163, in
__init__
fileobj = self.myfileobj = builtins.open(filename, mode or
'rb')
FileNotFoundError: [Errno 2] No such file or directory:
'test.gz'
【问题讨论】:
-
你是如何运行 Reader 类的?
-
我不完全理解您的文件和模块布局,但我猜您的
reader.py文件(定义reader模块)和定义的C:\reader文件夹之间存在冲突一个reader包(其中包含compressed子包)。 -
@Blckknght 我添加了文件视图。
-
@PaulaThomas 我有上面的命令。我“导入阅读器”然后“r= reader.Reader('test.gzip')”
-
但是 reader.compressed 是从哪里来的?
标签: python python-module python-packaging