gpt4 book ai didi

python - 如何更改需要 "other"权限的 postgresql 才能导入 csv 文件

转载 作者:行者123 更新时间:2023-11-29 12:06:27 27 4
gpt4 key购买 nike

我最近从 Windows 更改为 ubuntu,但我在尝试重新创建我的 postgresql 数据库时遇到了权限问题。

我的问题如下:我有一个将 csv 文件导入 postgresql 数据库的脚本。数据位于多个 csv 文件中,我正在使用 psycopg2 来处理带有包装器的导入。

但是,用户权限存在问题。

要运行该文件,我需要手动更改每个 csv 文件的权限(可以批量执行),以便将“其他”权限设置为读取和写入。

这是否与我最初设置数据库的方式有关?如果是这样,我该如何纠正。

澄清一下:

I wish to know how to change my database settings to not require a manual permissions change to the "other" settings in order to allow import.

请求添加的脚本

import psycopg2 as psy
import sys

conn = psy.connect("dbname = 'name' host='localhost' user = 'postgres' password ='password')
curs = conn.cursor()
tablename = 'tabname'
filename = 'filename'

Input = "COPY %s FROM %s WITH CSV HEADER" % (tablename, filename)
curs.copy_expert(Input, sys.stdin)

conn.commit()
curs.close()
conn.close()

然后它有一个包装器来简单地在文件和表之间移动

我知道它有效,但是,它需要我手动更改 csv 文件的权限,以便“其他人”可以读取和写入它们。

我想知道为什么会这样

最佳答案

解决方法 - 替换 copy_expertcopy_from如:

f = open(filename)
curs.copy_from(f, tablename, ...)

这样您的脚本将读取 CSV 文件而不是服务器进程,因此无需调整权限。

关于python - 如何更改需要 "other"权限的 postgresql 才能导入 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10067184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com