2017-07-27 21 views
-3

ユーザーからパスの場所を取得し、そのパスの下にファイルまたはディレクトリを作成する関数を作成しようとしています。パスの最後にスラッシュの問題を効率的に解決する方法

しかし、ユーザーはさまざまな方法でパス情報を提供できます。以下のような

  1. /tmpの
  2. を/ tmp/
  3. C:
  4. C \ \ユーザー:\ユーザー

私は次の内のファイルまたはディレクトリに新しいファイルを作成していますway

data_file = path + "data_file" 
fh = open(data_file, "w") 

しかしスラッシュまたはバックワードスラッシュがない場合は、creat私は問題を効率的に処理することができますか?

+0

ダウン投票の理由はありますか? OPを知ってみましょう。 –

+0

私はダウン投票の理由を教えてください? – Arijit

+0

ファイルを作成する前に、フォワードスラッシュまたはバックスラッシュを処理する代わりに、指定されたパスが存在するかどうかを確認できます。 –

答えて

4

使用OSモジュールパス

os.path.join(path1,path2) 

このモジュールでは、スラッシュを使用して、いくつかのオペレーティング・システムのようなオペレーティング・システムの世話をするか、いくつかは、バックスラッシュを使用するを追加するために。あなたのコードで

import os 
data_file = os.path.join(path , "data_file") 
fh = open(data_file, "w") 
0

、ユーザーがWindowsまたはLinuxを使用しているかどうかを心配する必要がないようにosモジュールを使用してください。

import os 
path = '/tmp/' # or '/tmp/' or 'C:\Users\' or 'C:\Users' 
dir = os.path.dir(path) # Won't have trouble with windows/linux or trailing slash 
data_file = os.path.join(dir, 'file.txt') 
fh = open(data_file, 'w') 
+0

プログラムの実行中にエラーが発生しました。エラーは__moduleです 'ntpath'には属性 'dir'がありません__ – Arijit

関連する問題