sql >> データベース >  >> RDS >> PostgreSQL

SFTPファイルからCSV/Excelファイルを読み取り、パンダを使用してそれらのファイルにいくつかの変更を加え、保存し直します

    ダウンロード部分が完了しました。

    アップロード部分については、PythonのParamikoライブラリを使用してSFTPでPandasDataFrameを.csvに転送する方法を参照してください。 – Paramikoの場合ですが、 pysftp Connection.open 方法 ParamikoSFTPClient.open 、したがってコードは同じです。

    完全なコードは次のようになります:

    with sftp.open("/remote/path/data.csv", "r+", bufsize=32768) as f:
        # Download CSV contents from SFTP to memory
        df = pd.read_csv(f)
    
        # Modify as you need (just an example)
        df.at[0, 'Name'] = 'changed'
    
        # Upload the in-memory data back to SFTP
        f.seek(0)
        df.to_csv(f, index=False)
        # Truncate the remote file in case the new version of the contents is smaller
        f.truncate(f.tell())
    

    上記は同じファイルを更新します。別のファイルにアップロードする場合は、次を使用してください:

    # Download CSV contents from SFTP to memory
    with sftp.open("/remote/path/source.csv", "r") as f:
        df = pd.read_csv(f)
    
    # Modify as you need (just an example)
    df.at[0, 'Name'] = 'changed'
    
    # Upload the in-memory data back to SFTP
    with sftp.open("/remote/path/target.csv", "w", bufsize=32768) as f:
        df.to_csv(f, index=False)
    

    bufsizeの目的で 、参照:
    pysftpの「open」メソッドを使用して開いたSFTPサーバー上のファイルへの書き込みが遅い

    必須の警告:cnopts.hostkeys = Noneを設定しないでください 、セキュリティを気にしない限り。正しい解決策については、pysftpでホストキーを確認する を参照してください。



    1. MySQL:特定の日付からの週数を計算する方法は?

    2. olingo v2でBLOBとCLOBを処理する方法は?

    3. PostGISを使用してポリゴンデータを線分に変換する方法

    4. SQLですべての組み合わせを生成する