

Twitter分析をしようといろいろなサイトを参考にコーディングを進めていました。pyファイルipynbファイルのどちらもvscodeで動かしています。環境変数のパスはpython.exeのあるファイル，Libraryファイル，Scriptファイルの順に通しております。同じコードでもipynbファイルは実行できますが，pyファイルは一番下段のようなエラーが出ます。

参考までにpyファイルのコードを載せます。  
どなたか意見等ありましたら，ぜひお願いいたします。

[code]

    # module __
    from datetime import datetime,timezone
    import datetime
    import glob
    import os
    import tweepy
    import pytz
    import pandas as pd
    import passtwi
    
    ##
    def time_geter():
      now_date=datetime.datetime.now()
      now_date=now_date.date()
    
      list_of_files = glob.glob('tweet_*.csv')
      latest_filer = max(list_of_files, key=os.path.getctime)
      latest_files=latest_filer.replace('.csv','')
      latest_files=latest_files.replace('tweet_','')
      f= datetime.datetime.strptime(latest_files, '%Y-%m-%d')
      latest_file_date=f.date()
    
      return now_date,latest_file_date
    
    def difftime(now_date, latest_file_date):
      diff=now_date - latest_file_date
    
      return diff
    
    
    
    def main():
      now_date,latest_file_date=time_geter()
    
      def console(now_date,latest_file_date):
        diff=difftime(now_date,latest_file_date)
        return diff 
    
    
      # twitter 認証
      CK=passtwi.CONSUMER_KEY
      CS=passtwi.CONSUMER_SECRET
      AT=passtwi.ACCESS_TOKEN
      AS=passtwi.ACCESS_TOKEN_SECRET
      
      auth = tweepy.OAuthHandler(CK,CS)
      auth.set_access_token(AT,AS)
      api = tweepy.API(auth)
      
      #検索条件の設定
      searchkey = ''
      item_num = 300
    
      #検索条件を元にツイートを抽出
      tweets = tweepy.Cursor(api.search_tweets,q=searchkey,lang='ja').items(item_num)
      #抽出したデータから必要な情報を取り出す
      #取得したツイートを一つずつ取り出して必要な情報をtweet_dataに格納する
      tweet_data = []
      for tweet in tweets:
          #ツイート時刻とユーザのアカウント作成時刻を日本時刻にする
          #tweet_dataの配列に取得したい情報を入れていく
          tweet_data.append([
              tweet.id,
              tweet.created_at,
              tweet.text,
              tweet.favorite_count, 
              tweet.retweet_count, 
              tweet.user.id, 
              tweet.user.screen_name,
              tweet.user.name,
              tweet.user.description,
              tweet.user.friends_count,
              tweet.user.followers_count,
              tweet.user.created_at,
              tweet.user.following,
              tweet.user.profile_image_url,
              tweet.user.profile_background_image_url,
              tweet.user.url
          ])
      #CSVファイルに出力するときの列の名前を定義
      labels=[
          'ツイートID',
            'ツイート時刻',
            'ツイート内容',
            'いいね数',
            'リツイート数',
            'ID',
            'ユーザID',
            'アカウント名',
            '自己紹介文',
            'フォロー数',
            'フォロワー数',
            'アカウント作成日時',
            '自分がフォローしているか？',
            'アイコン画像URL',
            'ヘッダー画像URL',
            'WEBサイト'
            ]
      #tweet_dataのリストをpandasのDataFrameに変換
      df = pd.DataFrame(tweet_data,columns=labels)
      
      diff=console(now_date,latest_file_date)
    
      if (diff==0):
        file_name="tweet_{0:%Y-%m-%d}.csv".format(now_date)
        df.to_csv(file_name,encoding='utf-8-sig',index=False)
      else:
        file_name="tweet_{0:%Y-%m-%d}.csv".format(latest_file_date)
        #csvファイルの読み込み
        df_csv = pd.read_csv(file_name)
        df_merge = pd.concat([df_csv,df])
        df_merge = df_merge.drop_duplicates(keep='last',subset='ツイートID')
        df_merge.to_csv(file_name,encoding='utf-8-sig',index=False)
      
    if __name__=='__main__':
      main()
    
[/code]

どうぞよろしくお願いいたします。

* * *

以下は上記のコードが書かれたpyファイルを`Run Python File`で実行したときに表示されたものです。

* * *

**追記いたします** ：コメントでコマンドプロンプトで動かすのが前提とのご指摘がありましたので，試したところ同様のValueErrorが出ました。

* * *
[code]

    ValueError : max() arg is an empty sequence
    
[/code]

* * *

インポートしているpasstwiはAPIのキーでpyファイルにキーだけ保存しております。  
この時点でl 9の`import passtwi`を`
shift+Enter`で実行すると以下のようなエラーが出ました。なお，pyファイルとモジュールのファイルは同じディレクトリに入っております。

[code]

    ModuleNotFoundError: No module named 'passtwi'
    
[/code]

ウィンドウズのバージョンは21H2，OSビルドは19044.1466となっております。  
Anacondaでインストールを行い，VScodeで実行しております。`.py`ファイルはF5のデバッグの実行で動かそうとしているところであります。  
jupyter でのpythonの情報は以下の通りです。

[code]

    python.exe 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)]
    
[/code]

重ねてよろしくお願いいたします。


CC BY-SA 4.0
2022-02-08T08:57:22.480
86202
2022-02-10T00:05:03.373
2022-02-09T02:01:55.503
50698
50698
question
python python3 vscode
ipynbファイルは実行できますが，pyファイルでは実行できません


自己解決しました。

原因はなぜか上のディレクトリを探していたので，解決方法は  
`list_of_files = glob.glob('tweet/*.csv')`  
とすることで目当てのcsvファイルを探すことが出来ました。

参考までに，上記のようなことをしてエラーが出た初学者の方は，問題となるディレクトリの指定までひとつづつファイル名と形式を確認されると手っ取り早いかもしれません。慣れている方は，想定していないディレクトリが指定されている可能性に気づけると思いますので。

* * *

はじめてアイデアからコードを起こしたためお見苦しい点ばかりでした。

残念ながらどうして上のディレクトリを探しているのか，見当がつきませんでした。  
質問の段階で，階層構造について書きこんでいればと悔やまれます。


CC BY-SA 4.0
2022-02-09T12:18:32.417
86232
2022-02-10T00:05:03.373
2022-02-10T00:05:03.373
50698
50698
86202
answer