读取 pg_dump 文件发生在打开文件时

reading pg_dump file occurs at open the file

我正在使用 pgdumplib 库。不幸的是,当我试图打开文件时出现错误。该文件与 python 脚本位于同一文件夹中。我正在使用 Python 3.7

代码:

import pgdumplib

dump = pgdumplib.load('test.dump')

print('Database: {}'.format(dump.toc.dbname))
print('Archive Timestamp: {}'.format(dump.toc.timestamp))
print('Server Version: {}'.format(dump.toc.server_version))
print('Dump Version: {}'.format(dump.toc.dump_version))

for line in dump.table_data('public', 'pgbench_accounts'):
    print(line)

错误:

Traceback (most recent call last):
  File "C:/Users/user/data/test.py", line 3, in <module>
    dump = pgdumplib.load('test.dump')
  File "C:\Users\user\venv\data\lib\site-packages\pgdumplib\__init__.py", line 24, in load
    return dump.Dump(converter=converter).load(filepath)
  File "C:\Users\user\venv\data\lib\site-packages\pgdumplib\dump.py", line 228, in load
    raise ValueError('Path {!r} does not exist'.format(path))
ValueError: Path 'test.dump' does not exist

如果您是 运行 来自 C:/Users/user/700Joach/project/ 的代码并且您的脚本中有以下行:

dump = pgdumplib.load('test.dump')

然后,python会寻找以下路径打开test.dump

C:/Users/user/700Joach/project/test.dump

也就是说,这部分:load('test.dump') 在内部正在伪造到 test.dump 的相对路径。

您可以采取多种措施来解决该问题。将 test.dump 移动到您正在执行代码的目录。或者,提供 test.dump 的绝对路径,如下所示:

dump = pgdumplib.load('C:/Users/user/700Joach/project/test.dump')