2016-09-18 1 views
-2

こんにちは、私は、SMB/Windows共有は、私はPythonスクリプトで動作するように名前変更をすることができた。このRetrieve email subject from file via bashファイル名はUbuntuのからコピーした後のウィンドウでは読み取ることができません

からの継続だ問題でありましたfstabの

//192.168.0.11/share/temp /media/share cifs username=username,password=password,iocharset=utf8 0 0 

経由でマウントされたファイル名のすべてのLinuxの下でOKですが、私はウィンドウで、リストを開いたとき、私はこれがrenamスクリプトですPHBM4Q〜8.EMLよう

あるファイルを参照してくださいESファイルが

#!/usr/bin/env python 
from email.parser import Parser 
from email.header import Header, decode_header 
from sys import argv 
import codecs 
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 

for filename in argv[1:]: 
    with open(filename, 'rb') as handle: # handle file not found etc? 
     message = Parser().parse(handle) 
    try: 
     subj = ''.join([frag.decode(enc) if enc else frag 
      for frag, enc in decode_header(message['subject'])]) 
    except HeaderParseError, UnicodeDecodeError: 
     subj = message['subject'] # maybe warn about error? 
    print(subj) 

私はGoogleがロックなしで提供している何かをしようとしたと思うよう

rsync -r -v --progress -s $LOCALDIR $REMOTEDIR 

任意のアイデアが参考になるファイルをコピーするためにrsyncを使用します。また、ウィンドウの下にある読み取り可能なファイル名は重要です。

+0

を追加しました。それで、MS-DOS互換の名前を割り当てる 'rsync'ですか?がんばろう。 – shellter

+0

それで、smbディレクトリをマウントするときに 'ls'したら、すでに短縮されたファイル名になっていますか? – zvone

+0

はい、ファイル名は読み取り可能です。また、ウィンドウやプロパティ/詳細でマウスの右クリックをするとファイル名も正常です – adam

答えて

1

問題は文字エンコーディングではありませんでしたが、最終ファイル名にはファイル名に許可されていない文字が含まれていました。

この投稿は役に立ちましたhttps://serverfault.com/questions/124611/special-characters-in-samba-filenamesです。そして、Pythonのスクリプトでは、私はちょうど

print(subj.translate(None,'\/:*?"|<>')) 
関連する問題