2016-09-09 26 views
0

matlabコードのチャンクをPythonに変換する必要があります。私のコードは「到達不能」だと思われます。なぜこれが起こっているのか? また、私はそれを正しくやっていますか?私は本当の初心者です。MatlabコードをPythonに翻訳する

MATLABコード:

function Dir = getScriptDir() 
    fullPath = mfilename('fullpath'); 
    [Dir, ~,~] = fileparts(fullPath); 
end 

function [list,listSize] = getFileList(Dir) 
    DirResult = dir(Dir); 
    list = DirResult(~[DirResult.isdir]); % select files 
    listSize = size(list); 
end 

私のPythonコード:

def Dir = getScriptDir(): 
    return os.path.dirname(os.path.realpath(__file__) 
def getFileList(Dir): 
    list = os.listdir(Dir) 
    listSize = len(list) 
    getFileList() = [list, listSize] 
+1

'getFileList()= [ list、listSize] 'は正しいコードのようではありません。たぶん 'return [list、listSize]'?また、camelCaseという名前の関数を使用すると、Pythonコードに違反します。standart –

+0

@IlyaBoltnev "standart"とは何ですか? – glglgl

+0

@IlyaBoltnevは大文字で自分のコードに影響を与えることができますか?私はそれを変更しない場合、それは動作しません? – Budzi

答えて

0

あなたの関数定義が間違っていました。あなたが提供したコードを修正しました。 getScriptDir()機能をgetFileList()機能に統合することもできます。

import os 

def getFileList(): 
    dir = os.path.dirname(os.path.realpath(__file__)) 
    list = os.listdir(dir) 
    listSize = len(list) 
    fileList = [list, listSize] 
    return fileList 

print(getFileList()) 

戻り値:(私の環境では)

[['test.py', 'test.txt', 'test2.py', 'test2.txt', 'test3.py', 'test4.py', 'testlog.txt', '__pycache__'], 8] 

あなたのスクリプト機能 - getScriptDir(修正)を含む:

import os 

def getScriptDir(): 
    return os.path.dirname(os.path.realpath(__file__)) 

def getFileList(dir): 
    dir = os.path.dirname(os.path.realpath(__file__)) 
    list = os.listdir(dir) 
    listSize = len(list) 
    fileList = [list, listSize] 
    return fileList 


dir = getScriptDir() 

print(getFileList(dir)) 
2

あなたの構文が正しくありません。これを正しく読んでいるならば、スクリプトと同じディレクトリにあるファイルの名前を取得し、そのリスト内のファイル数を表示しようとしています。ここで


は(あなたが与えたプログラムに基づいて)これを行う方法の例です:

import os 

def getFileList(directory = os.path.dirname(os.path.realpath(__file__))): 
    list = os.listdir(directory) 
    listSize = len(list) 
    return [list, listSize] 

print(getFileList()) 

出力例:

[['program.py', 'data', 'syntax.py'], 3] 
+0

@ ode2kの解決策は、あまりにも(申し訳ありませんが、私の評判のためあなたの投稿にまだコメントすることはできません)、しかし "getScriptDir"必要です。キーワード引数を使用してディレクトリを設定する方が簡単です(さらに、この関数は他のディレクトリでも再利用可能です)。 – robben

+0

両方ともありがとう、私はコードの残りの部分についてもその情報が必要でした:)) – Budzi

関連する問題