首页
学习
活动
专区
圈层
工具
发布

#cvs

SQLPLUS 导出到CVS文件为何只有一行?

SQLPLUS 导出到 CSV 文件只有一行的原因可能是在导出过程中,字段之间的分隔符或换行符没有设置正确。为了解决这个问题,你可以在 SQLPLUS 中使用以下命令来设置分隔符和换行符: ``` SET COLSEP , SET LINESIZE 1000 SET PAGESIZE 0 SET FEEDBACK OFF SET TRIMSPOOL ON ``` 这里的命令解释如下: 1. `SET COLSEP ,`:设置字段之间的分隔符为逗号。 2. `SET LINESIZE 1000`:设置每行的最大长度为 1000 个字符。 3. `SET PAGESIZE 0`:设置每页的最大行数为 0,这样就不会在导出的 CSV 文件中出现多余的分页信息。 4. `SET FEEDBACK OFF`:关闭查询结果的反馈信息。 5. `SET TRIMSPOOL ON`:去除导出文件中的空格。 接下来,你可以使用以下命令将查询结果导出到 CSV 文件: ``` SPOOL your_file_name.csv SELECT * FROM your_table_name; SPOOL OFF ``` 将 `your_file_name.csv` 替换为你想要保存的文件名,将 `your_table_name` 替换为你想要导出的表名。 如果你在使用腾讯云的产品,可以考虑使用腾讯云的云数据库(TencentDB)产品,它提供了完整的数据库服务,包括 MySQL、PostgreSQL、SQL Server 等多种数据库类型。同时,腾讯云还提供了数据传输、数据迁移等相关服务,可以帮助你更方便地进行数据导出和迁移。... 展开详请

文件CSV中每一行中间的空格

成品冻K感情是人一辈子也捉摸不透的东西
已采纳
你的问题是,csv-模块writerows有自己的“换行符”-逻辑。它会干扰默认的换行符行为。open(): 像这样修正: with open('rutasAeropuertos.csv', 'w', newline='' ) as archivo_rutas: # ^^^^^^^^^^ 在文档中的示例中也记录了这一点 如果csv文件是一个文件对象,应该用newline='' 有一个脚注的链接告诉你: 一如果未指定newline=‘,则嵌入在引号字段中的换行符将无法正确解释,并且在使用\r\n写一个额外的行\r将被添加。指定newline=‘应该是安全的,因为CSV模块执行自己的(通用)换行符处理。 使用的是windows,它确实使用\r\n这会增加另一个\r,从而导致“错误”输出。 包含一些优化的完整代码: import csv import random def dict_ID_aeropuertos(): with open('AeropuertosArg.csv') as archivo_csv: leer = csv.reader(archivo_csv) dic_ID = {} for linea in leer: dic_ID.setdefault(linea[0],linea[1]) return dic_ID def ruteoAleatorio(): dic_ID = dict_ID_aeropuertos() lista_ID = list(dic_ID.keys()) lista_rutas = set() # a set only holds unique values while (len(lista_rutas) < 50): # simply check the length of the set r1,r2 = random.sample(lista_ID, k=2) # draw 2 different ones lista_rutas.add( (r1,r2) ) # you can not add duplicates, no need to check with open('rutasAeropuertos.csv', 'w', newline='' ) as archivo_rutas: escribir = csv.writer(archivo_rutas) escribir.writerows(lista_rutas) ruteoAleatorio() 产出: 9,3 16,10 15,6 [snipp lots of values] 13,14 13,7 20,4... 展开详请
你的问题是,csv-模块writerows有自己的“换行符”-逻辑。它会干扰默认的换行符行为。open(): 像这样修正: with open('rutasAeropuertos.csv', 'w', newline='' ) as archivo_rutas: # ^^^^^^^^^^ 在文档中的示例中也记录了这一点 如果csv文件是一个文件对象,应该用newline='' 有一个脚注的链接告诉你: 一如果未指定newline=‘,则嵌入在引号字段中的换行符将无法正确解释,并且在使用\r\n写一个额外的行\r将被添加。指定newline=‘应该是安全的,因为CSV模块执行自己的(通用)换行符处理。 使用的是windows,它确实使用\r\n这会增加另一个\r,从而导致“错误”输出。 包含一些优化的完整代码: import csv import random def dict_ID_aeropuertos(): with open('AeropuertosArg.csv') as archivo_csv: leer = csv.reader(archivo_csv) dic_ID = {} for linea in leer: dic_ID.setdefault(linea[0],linea[1]) return dic_ID def ruteoAleatorio(): dic_ID = dict_ID_aeropuertos() lista_ID = list(dic_ID.keys()) lista_rutas = set() # a set only holds unique values while (len(lista_rutas) < 50): # simply check the length of the set r1,r2 = random.sample(lista_ID, k=2) # draw 2 different ones lista_rutas.add( (r1,r2) ) # you can not add duplicates, no need to check with open('rutasAeropuertos.csv', 'w', newline='' ) as archivo_rutas: escribir = csv.writer(archivo_rutas) escribir.writerows(lista_rutas) ruteoAleatorio() 产出: 9,3 16,10 15,6 [snipp lots of values] 13,14 13,7 20,4
领券