我在.txt文件中有默认的psql查询输出,很难阅读.有什么命令或服务可以将其更改为更方便使用的格式(例如CSV)?

查阅了文档,但没有找到解决方案.有没有可能,我能以某种方式在交互模式下用psql打开它,就像我自己查询它一样?

推荐答案

我已经为此编写了Python脚本,还没有找到更好的解决方案.

import sys

def convert_to_csv(input_file, output_file):
    with open(input_file, 'r') as inp, open(output_file, 'w') as outp:
        lines = inp.readlines()
        
        # Process header
        buffer = ''
        i = 1  # Skip query line
        while not lines[i].startswith('---'):
            buffer += lines[i].rstrip()
            i += 1

        header = buffer.split('|')
        header = [h.strip() for h in header]
        num_of_columns = len(header)
        outp.write(','.join(header) + '\n')
        
        # Skip separator line(s)
        while lines[i].startswith('---'):
            i += 1

        # Process data rows
        buffer = ''
        for line in lines[i:-1]:  # Skip last line (row count)
            buffer += line.rstrip()
            if buffer.count('|') == num_of_columns - 1:
                row = buffer.split('|')
                row = [f'"{value.strip()}"' if ',' in value.strip() else value.strip() for value in row]
                outp.write(','.join(row) + '\n')
                buffer = ''
        if buffer:  # Ensure last bit of data is written
            row = buffer.split('|')
            row = [f'"{value.strip()}"' if ',' in value.strip() else value.strip() for value in row]
            outp.write(','.join(row) + '\n')

convert_to_csv(sys.argv[1], sys.argv[2])

python3 psql_to_csv.py exp1.txt outp1.csv号航站楼运行它.输入文件应以类似db_name=# select * ...的查询命令开头,以(N rows)结束

Postgresql相关问答推荐

创建发布性能

在Haskell中定义新类型与持久化类型的惯用方法

Postgres-pgloader-默认情况下,在PostgreSQL中将列名转换为小写

Postgres:创建分区需要很长时间

为什么 Postgres 中的 now() 和 now()::timestamp 对于 CET 和 CEST 时区如此错误?

对 Postgres 进行身份验证时如何使用自定义密码哈希算法?

Postgres 14 反斜杠 Z 没有给出正确的输出

Rails:创建删除表级联迁移

如何将 postgres 数据库转换为 sqlite

knex: Select 特定日期范围内的行

在 Postgresql 中获取星期几

postgresql 在查询中插入空值

为什么 sqlalchemy 的默认列值不起作用

如何在 Postgresql 中正确使用 FETCH FIRST?

为 postgresql 存储过程设置隔离级别

如何将主键添加到视图?

null 计算结果为 false 的情况

如何使用 sql 或 phpPgAdmin 更改 PostgreSQL 数据库的数据库编码?

如何在创建数据库时安装 Postgres 扩展?

postgresql 删除级联