質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

解決済

AWS Lambda S3接続に関するPATH設定 (Python 2.7)

umechan47
umechan47

総合スコア17

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

2回答

0リアクション

0クリップ

5086閲覧

投稿2016/08/24 19:50

AWS Lambdaでs3からcsvファイルを読み込む関数を書いています.
コードはpython 2.7です.

関数の動作段階で、新しく書き込んだファイルを保存する先のパス設定がおかしくなり以下のエラーが出てきてしまいます。
[Errno 2] No such file or directory: u'/read_csv/write.csv'

保存先はread_csv/write.csvのはずなのですが、なぜu'/read_csv/write.csv'で設定されてしまうのでしょうか.PATHの定義の仕方を色々と試したのですが、うまくいかなかったので、ここで質問させていただいてます.
よろしくお願いします.

###該当のソースコード

python2.7

from __future__ import print_function #!/usr/bin/env python # -*-coding: utf-8 -*- # cording:utf-8 import boto3 # aws lambda python module import json import csv # csv module import os import re import linecache # import numpy as np # import numpy module print('Loading function') # aws s3 information for connection s3_client = boto3.client('s3') # .client or .resource ## Event handler------------------------------------------ def lambda_handler(event, context): # Get uploded file names bucket = event['Records'][0]['s3']['bucket']['name'] # get latest event record happen in s3 bucket key = event['Records'][0]['s3']['object']['key'] # get latest put filename print(bucket) print(key) # obj = bucket.Object(key) # get object path_tmp = '/tmp/' + os.path.basename(key) # path to the uploded file (filename) # path_savefile = re.sub('original_csv/', 'read_csv/', key) # replace the file path path_savefile = '/read_csv/' + os.path.basename(key) print(path_tmp) print(path_savefile) try: # Download the file from s3 s3_client.download_file(Bucket = bucket, Key = key, Filename = path_tmp) # readfile and write file to the new csv file with open(path_tmp, "r") as f1: # open file for reading with open(path_savefile, "w") as f2: # open file for writing readData = f1.readline() # read lines one by one and delete /n f2.write(readData) # write data to new file print('finish create copy') # Save the file to s3 s3_client.upload_file(Filename = path_savefile, Bucket = bucket, Key = key) print('Succeed in creating a new file') except Exception as e: print(e) # raise e

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

matobaa

2016/08/25 00:31

「保存先はread_csv/write.csvのはずなのですが、なぜu'/read_csv/write.csv'で設定されてしまうのでしょうか」とのことですが、疑問点は以下のどちらですか? 1. read_csv の前にスラッシュがついているのが期待と違う 2. u'…'で囲まれているのが期待と違う
umechan47

2016/08/25 01:15

返信ありがとうございます. 疑問点は2のu'…'で囲まれているという点です.

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。