Pythonの標準ライブラリに慣れようとし、Windowsマシンでそれをいじくり回します。 python 2.7)を使用すると、ディレクトリを検索し、ファイル名から数字を削除した後、ディレクトリ内のすべてのファイルの名前を変更することを目的とした次の小さなスクリプトがあります。「」というタイプエラーが発生します。 strではなくNULLバイトのないエンコードされた文字列である必要があります」
5行目と18行目を呼び出します以下に記載ここで、imはos.path.existsを使用しています。
どんな助けでも大歓迎です!
import os, re, string, glob
path = os.path.normpath('C:\Users\me\Photo Projects\Project Name\Project Photos\Modified\0-PyTest')
ln5:if os.path.exists(path):
print "path exists at " + path
for file in glob.glob(os.path.join(path, '*.jpg')):
new_path = os.path.join(os.path.dirname(file), re.sub('\d', '', os.path.basename(file)))
line18: if not os.path.exists(new_path):
os.rename(file, new_path)
単一のバックスラッシュの問題であることが判明しました。私はos.path.normpathがosの要求に応じてパスをフォーマットすると思いました。
"... Photos\Modified\0-PyTest"
\ 0をヌル文字として使用します。あなたは逃げなければなりません\
using \\
、または文字列の前にr
を付けて、文字列を生にします。
r'C:\Users\me\Photo Projects\Project Name\Project Photos\Modified\0-PyTest'
パスのURLを指定する場合は、その前にrを追加するだけです。
(r'E:\ Images\1.png ')