高斯数据库可以直接导入excel的数据吗?
Csv文件每次修改后还需要转为utf8格式,有什么办法可以在shell脚本中用命令转换吗?
高斯数据库支持从Excel中导入数据,但是需要将Excel文件先转换成CSV文件,然后再将CSV文件导入到高斯数据库中
批量转换多个CSV文件为utf8格式,可以使用for循环结合iconv命令来实现
for file in *.csv
do
iconv -f gbk -t utf-8 "$file" > "${file%.csv}-utf8.csv"
done
回答:
示例代码如下:
import pandas as pd
import pyodbc
# 连接高斯数据库,获取游标
conn_str = 'DRIVER={gauss10.0};SERVER=server_ip;PORT=port;DATABASE=db_name;UID=user;PWD=password;'
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()
# 读取csv文件为DataFrame
df = pd.read_csv('file_path/file_name.csv')
# 循环遍历每行数据,生成插入数据库的sql语句,并执行插入操作
for index, row in df.iterrows():
sql = 'insert into table_name values('
for i, value in enumerate(row):
if i < len(row) - 1:
sql += "'" + str(value) + "',"
else:
sql += "'" + str(value) + "')"
cursor.execute(sql)
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
示例代码如下:
使用iconv命令转换csv文件为utf8格式:
iconv -f GBK -t UTF-8 input.csv > output.csv
使用Python中的codecs库实现自动转换为utf8格式:
import codecs
# 读取csv文件
with codecs.open('file_path/file_name.csv', 'r', encoding='GBK') as f:
content = f.read()
# 修改文件内容,例如将第一行的"名称,年龄,性别"修改为"Name,Age,Sex"
content = content.replace('名称', 'Name').replace('年龄', 'Age').replace('性别', 'Sex')
# 写入新文件,编码为utf8格式
with codecs.open('file_path/output.csv', 'w', encoding='UTF-8') as f:
f.write(content)