gpt4 book ai didi

python - 使用Python3——需要为pandas的流输出生成压缩的csv文件

转载 作者:行者123 更新时间:2023-12-05 06:58:00 26 4
gpt4 key购买 nike

我是 python 新手。 Kinldy 帮助我直接为流数据创建一个压缩的 csv 文件。

详细信息:每次调用函数时,我的 csv 文件都应该更新。我不想创建 .csv 文件,而是想为流数据创建压缩的 .csv 文件。

注意:我的数据不是一次性生成的。 df.to_csv(..., compression="gzip") 在我的情况下不起作用。

再次提出这个问题,因为我之前的问题被标记为重复并已关闭。

线索 1:

def outputfile(result):

try:

table = pd.DataFrame(result)
table = table.transpose()

headers = ['IP','account', 'fd','instance_id','index','sourcetype','Product' , 'State']

if os.path.isfile(final_IP_List_Program_Output_csv):
mode = 'a'
header = 0

else :
mode ='w'
header = headers

with open(final_IP_List_Program_Output_csv,mode=mode,newline='',encoding='utf8',errors='replace') as csvfile:
content = table.to_csv(csvfile,sep=',',encoding='utf-8',index=False,line_terminator="",header=header,quoting=csv.QUOTE_NONE)
print("Successfully uploaded the csv file.")

with gzip.open(final_IP_List_Program_Output_csv_gz, 'a') as compressed_file:
compressed_file.write(table.to_csv(content,sep=',',encoding='utf-8',index=False,line_terminator="",header=header,quoting=csv.QUOTE_NONE).encode())
print("Successfully uploaded the compressed file")

except Exception as err :
print("Error Occurred during FileCreation. Kindly recheck the code.",err)
sys.exit()

调用此函数来更新每一行。使用上面的方法,我首先创建一个 csv 文件,然后创建一个压缩的 csv 文件。但是我压缩的 csv 文件本身比普通的 csv 文件大很多。

线索 2:

tf = tarfile.open(final_IP_List_Program_Output_csv_gz, mode="w:gz")
table = pd.DataFrame(result)
with open(final_IP_List_Program_Output_csv,mode=mode, newline='', encoding='utf8', errors='replace') as file:
table.to_csv(file,sep=',',mode=mode,encoding='utf-8',index=False ,header=header,line_terminator="",quoting=csv.QUOTE_NONE)
tf.add(final_IP_List_Program_Output_csv,arcname=os.path.basename(final_IP_List_Program_Output_csv))
tf.close()
print("Successfully uploaded the csv file.")

使用它,我只能将第一行添加到 tar.gz 文件,但原始 csv 文件不止一行。

最佳答案

with open(final_IP_List_Program_Output_csv,mode=mode, newline='', encoding='utf8', errors='replace') as csvfile:
table.to_csv(csvfile,sep=',',encoding='utf-8',index=False,line_terminator="",header=header,quoting=csv.QUOTE_NONE)
print("Successfully uploaded the csv file.")

tf.add(final_IP_List_Program_Output_csv,arcname=os.path.basename(final_IP_List_Program_Output_csv))
tf.close()
print("Successfully uploaded the compressed file")

以上方法有效。

关于python - 使用Python3——需要为pandas的流输出生成压缩的csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64739926/

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