我每分钟都从网页抓取 csv文件并将其存储到目录中。
根据检索时间命名文件:
name = 'train'+str(datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"))+'.csv'
我需要将每个文件上传到某个远程服务器上创建的数据库。
我该怎么办?
答案 0 :(得分:1)
您可以使用pandas和sqlalchemy将CSV加载到数据库中。我使用MSSQL,我的代码如下所示:
import os
import pandas as pd
import sqlalchemy as sa
server = 'your server'
database = 'your database'
for filename in os.listdir(directory): #iterate over files
df = pandas.read_csv(filename, sep=',')
engine = sa.create_engine('mssql+pyodbc://'+server+'/'+database+'?
driver=SQL+Server+Native+Client+11.0')
tableName = os.path.splitext(filename)[0]) #removes .csv extension
df.to_sql(tableName, con=engine,dtype=None) #sent data to server
通过设置dtype参数,您可以更改数据类型的转换(例如,如果您想要smallint而不是整数等)
确保你不要写两次相同的文件/表我建议你可以在目录中保存一个日志文件,在那里你可以记录写入数据库的csv文件。然后排除你的for循环中的那些。