私はPythonと英語も学んでいます。簡単かもしれない問題がありますが、解決できません。.txtのフォルダーがあり、正規表現でそれぞれの番号のシーケンスを抽出することができました。.txtから抽出したシーケンスで各ファイルの名前を変更します
path_txt = (r'''C:\Users\user\Desktop\Doc_Classifier\TXT''')
for TXT in name_files3:
with open(path_txt + '\\' + TXT, "r") as content:
search = re.search(r'(([0-9]{4})(/)(([1][9][0-9][0-9])|([2][0-9][0-9][0-9])))', content.read())
if search is not None:
name3 = search.group(0)
name3 = name3.replace("/", "")
os.rename(os.path.join(path_txt, TXT),
os.path.join("Processos3", name3 + "_" + str(random.randint(100, 999)) + ".txt"))
ファイルがすでに存在するかどうかを確認し、増分を追加して名前を変更する必要があります。現在、ファイルを区別するために、名前に乱数を追加しています(random.randint(100、999))
PS:現在、スクリプトは正規表現によって.txtで「7526/2016」を検出します。「/」を削除します。ファイルの名前を「75262016」+乱数(例:7526016_111)に変更します。乱数を使用して名前を変更する代わりに、ファイルがすでに存在するかどうかを確認し、増分を使用して名前を変更したいと思います(例:7526016_copy1、7526016_copy2)
交換:
os.rename(
os.path.join(path_txt, TXT),
os.path.join("Processos3", name3 + "_" + str(random.randint(100, 999)) + ".txt")
)
と:
fp = os.path.join("Processos3", name3 + "_%d.txt")
postfix = 0
while os.path.exists(fp % postfix):
postfix += 1
os.rename(
os.path.join(path_txt, TXT),
fp % postfix
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加