-1

私はそのようなファイルがたくさんあるフォルダを持っています:

2012-05-09.txt
2012-05-10.txt
2012-05-11.txt
etc. 

ここで、ハイフンを削除して、最終的に次のように見える「_PHOTOS_LOG」を追加します。

20120509_PHOTOS_LOG.txt
20120510_PHOTOS_LOG.txt
20120511_PHOTOS_LOG.txt
etc.

実行する方法 ?

それが今のコードです:

//updated the code, now its working 

import os
import glob
import os.path
import sys


src = 'D:\\testing/hyphen1'

src = r'D:\testing\test'

for fn in os.listdir(src):
    new_filename = fn.replace('-','').replace('.txt', '_PHOTOS_LOG.txt')
    fn = os.path.join(src, fn)
    new_filename = os.path.join(src, new_filename)
    try:
        os.rename(fn, new_filename)
    except (WindowsError, OSError):
        print 'Error renaming "%s" to "%s"' % (fn, new_filename)
        print sys.exc_info()[1]
4

4 に答える 4

1
new_filename = old_filename.replace("-", "").replace(".txt", "_PHOTOS_LOG.txt")

すべてのファイルの名前を変更する場合は、新しいファイル名が取得されます。

import os
for old_filename in os.listdir("."):
    new_filename = old_filename.replace("-", "").replace(".txt", "_PHOTOS_LOG.txt")
    os.rename(old_filename, new_filename)
于 2012-07-10T11:02:03.367 に答える
1

現在のディレクトリ内のすべてのファイルの場合:

import os

for fn in os.listdir('.'):
   new_filename = fn.replace('-','').replace('.txt', '_PHOTOS_LOG.txt')
   os.rename(fn, new_filename)

os.rename()を使用してファイル名を変更します。

個々のファイル名は一連の文字列になるため、通常はosモジュールのメソッドを使用しますが、パスを確認するのではなく、単純なファイル名を使用してreplace()を使用すると、これらを文字列として扱うことができます。新しい名前を作成します。

-

変換を示す1つのファイル名の例:

fn ='2012-05-09.txt'

それから

fn.replace('-','').replace('.txt', '_PHOTOS_LOG.txt')

降伏します'20120509_PHOTOS_LOG.txt'

于 2012-07-10T11:02:47.207 に答える
1

次のように名前を変更できます。

import os
for filename in os.listdir("."):
    if filename.endswith(".txt"):
        newFilename = filename.replace("-", "")
        os.rename(filename, newFilename[:7]+"_PHOTO_LOG.txt")

os.listdir(".") は、現在のフォルダー内のエントリの名前を返します filename.endswith(".txt") は、ファイル名がテキスト ファイルの 1 つであるかどうかを確認し、そうであれば - を削除し、_PHOTO_LOG を追加します終わり

于 2012-07-10T11:17:01.977 に答える
0

ファイルのリストを繰り返し処理し、必要に応じて名前を変更する必要があります。

import os
import glob
for name in glob.glob('*.txt'):
  newname = "%s_PHOTOS_LOG.txt" % name.replace('-','')[:-4]
  os.rename(name, newname)

このglob.glob関数は.txt、現在のディレクトリ内のファイルのリストを生成します。

于 2012-07-10T11:03:11.387 に答える