2016-08-18 6 views
-1
path = r'C:\Myfolder\data\today' 
for root, directories, filenames in os.walk(path): 

    for filename in filenames: 
     fname = os.path.join(root,filename) 
     if os.path.isfile(fname) and fname[-4:] == '.log': 
      if fname not in rows1: 
       print fname 
       fname=fname.replace(path,"") 
       with open(fname, 'r') as myfile: 

私のファイル名を開いているときには、Cのようになります。\ MYFOLDER \データ\今日\ 00.logと私はちょうど「今日\ 00.log」が必要 エラーは例外IOErrorがあります:[Errno 2]そのようなファイルやディレクトリはありません: '\ today \ 00.log' ファイル名から\を削除するには?二重のバックスラッシュ(\)

+0

あなたはなぜパスを削除しますか?あなたは 'fname = fname.replace(path、" ").lstrip(" \\ ")'を使うことができますが、なぜあなたが何をしているのか分かりません。 –

+0

なぜ名前に\を取り除かないのですか?また、パス= r "C:\\ Myfolder \ data \ today" – thesonyman101

+0

結果は今日も\\ 00.logです - このファイル名はデータベーステーブルに保存する必要があり、絶対パスは必要ありません。 – Prasad

答えて

-1

また、エラーが実際にそこではない、あなたの代わりに使用する文字列スライス、知られている接頭辞を取り除くために置き換える使用して、ファイルを開くには、完全なファイル名を使用しないでください。

path = r'C:\Myfolder\data\today' 
for root, directories, filenames in os.walk(path): 
    for filename in filenames: 
     fullname = os.path.join(root,filename) 
     if os.path.isfile(fullname) and fullname[-4:] == '.log': 
      if fullname not in rows1: 
       print fullname 
       fname = fullname[len(path)+1:] 
       with open(fullname, 'r') as myfile: 
        do_something 
関連する問題