私はPythonをコーディングするときの騒ぎで、グーグルリングの量は私を助けてくれない何かにぶつかってきました。 私は簡単なディレクトリリストツールを書こうとしていますが、OSXのディレクトリ名でSpacesを扱うことはできません。次のように 私のコードは次のとおりです。ディレクトリパスの中のスペースpython
def listdir_nohidden(path):
import os
for f in os.listdir(path):
if not f.startswith('.'):
yield f
def MACListDirNoExt():
import os
MACu = PCu = os.environ['USER']
MACDIR = '/Users/'+MACu+'/Desktop//'
while True:
PATH = raw_input("What is the PATH you would like to list?")
if os.path.exists(PATH):
break
else:
print "That PATH cannot be found or does not exist."
NAME = raw_input ("What would you like to name your file?")
DIR = listdir_nohidden(PATH)
DIR = [os.path.splitext(x)[0] for x in DIR]
f = open(''+MACDIR+NAME+'.txt', "w")
for file in DIR:
f.write(str(file) + "\n")
f.close()
print "The file %s.txt has been written to your Desktop" % (NAME)
raw_input ("Press Enter to exit")
トラブルシューティングを容易にするため、私は、これは本質的に煮詰めことができると思いますけれども:スペース/ボリューム/ディスクが含まれているディレクトリパスを供給する場合
import os
PATH = raw_input("What is the PATH you would like to list")
os.listdir(PATH)
/『この\\は\\である\\フォルダ///ボリューム/ディスク』
:これは、「そのようなファイルやディレクトリを返していないフォルダです
エスケープをエスケープしているようです...?
表示されているコードでは、表示されたエラーメッセージが表示されません。あなたが実際に走っているコード、*未編集*、あなたが与えた正確な入力、未編集*、そしてあなたが実際に手に入れたエラーメッセージを表示してください。 – zwol
また、2番目のコードフラグメント( "ボイルダウン"のもの)は、名前にスペースを含むディレクトリで正しく動作し、最初のコードフラグメントが誤ってインデントされているため、テストできません(タブを使用しないでください)。 – zwol
(プロンプトでバックスラッシュを入力しているかもしれませんか?シェルはそれを望んでいますが、このプログラムはありません) – zwol