我大约需要重命名150.000个图像文件。这些存储在Unix系统上,我列出文件,使用regex查找要重命名的位并进行重命名。查看输出,发现文件已被删除。如果仅用打印语句替换os.rename,则所有文件都会存在并重命名。我尝试从Jupiter笔记本远程运行代码,并使用可执行脚本在本地运行代码,其行为相同:随机删除某些文件。有人有解释吗? 这是代码
import os as os
import re as re
pattern = re.compile('(.*_.*Z0)(\d)(C0\d.tif)')
for file in os.listdir('.'):
if file.startswith("08") and not file.endswith("C04.tif"):
res = re.search(pattern, file)
zPlane = str(int(res.group(2))-2)
os.rename(file, res.group(1)+zPlane+res.group(3))
和一些文件名
08-20-16_01-00-43_G13_T0001F001L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F001L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F001L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F001L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F001L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F001L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F001L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F001L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F001L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F001L01A04Z07C01.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F002L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z04C03.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z05C03.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z06C03.tif
08-20-16_01-00-43_G13_T0001F002L01A02Z07C03.tif
08-20-16_01-00-43_G13_T0001F002L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F002L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F002L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F002L01A03Z04C02.tif
08-20-16_01-00-43_G13_T0001F002L01A03Z05C02.tif
08-20-16_01-00-43_G13_T0001F002L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F002L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F003L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F003L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F003L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F003L01A02Z03C03.tif
08-20-16_01-00-43_G13_T0001F003L01A02Z06C03.tif
08-20-16_01-00-43_G13_T0001F003L01A02Z07C03.tif
08-20-16_01-00-43_G13_T0001F003L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F003L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F003L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F003L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F003L01A04Z03C01.tif
08-20-16_01-00-43_G13_T0001F003L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F003L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F004L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F004L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F004L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F004L01A02Z03C03.tif
08-20-16_01-00-43_G13_T0001F004L01A02Z06C03.tif
08-20-16_01-00-43_G13_T0001F004L01A02Z07C03.tif
08-20-16_01-00-43_G13_T0001F004L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F004L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F004L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F004L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F004L01A04Z03C01.tif
08-20-16_01-00-43_G13_T0001F004L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F004L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F005L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z04C03.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z05C03.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z06C03.tif
08-20-16_01-00-43_G13_T0001F005L01A02Z07C03.tif
08-20-16_01-00-43_G13_T0001F005L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F005L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F005L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F005L01A03Z04C02.tif
08-20-16_01-00-43_G13_T0001F005L01A03Z05C02.tif
08-20-16_01-00-43_G13_T0001F005L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F005L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F006L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F006L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F006L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F006L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F006L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F006L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F006L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F006L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F006L01A04Z07C01.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F007L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F007L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F007L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F007L01A02Z03C03.tif
08-20-16_01-00-43_G13_T0001F007L01A02Z04C03.tif
08-20-16_01-00-43_G13_T0001F007L01A02Z05C03.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z04C02.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z05C02.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F007L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F007L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F007L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F007L01A04Z03C01.tif
08-20-16_01-00-43_G13_T0001F007L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F007L01A04Z07C01.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F008L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F008L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F008L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F008L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F008L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F008L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F008L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F008L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F008L01A04Z07C01.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F009L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F009L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F009L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F009L01A02Z03C03.tif
08-20-16_01-00-43_G13_T0001F009L01A02Z04C03.tif
08-20-16_01-00-43_G13_T0001F009L01A02Z05C03.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z04C02.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z05C02.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F009L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F009L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F009L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F009L01A04Z03C01.tif
08-20-16_01-00-43_G13_T0001F009L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F009L01A04Z07C01.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z01C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z02C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z03C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z04C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z05C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z06C04.tif
08-20-16_01-00-43_G13_T0001F010L01A01Z07C04.tif
08-20-16_01-00-43_G13_T0001F010L01A02Z01C03.tif
08-20-16_01-00-43_G13_T0001F010L01A02Z02C03.tif
08-20-16_01-00-43_G13_T0001F010L01A03Z01C02.tif
08-20-16_01-00-43_G13_T0001F010L01A03Z02C02.tif
08-20-16_01-00-43_G13_T0001F010L01A03Z03C02.tif
08-20-16_01-00-43_G13_T0001F010L01A03Z06C02.tif
08-20-16_01-00-43_G13_T0001F010L01A03Z07C02.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z01C01.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z02C01.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z04C01.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z05C01.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z06C01.tif
08-20-16_01-00-43_G13_T0001F010L01A04Z07C01.tif
答案 0 :(得分:0)
将“一些文件名”存储在名为f.txt的文件中,使用:
with open("f.txt","r") as r:
files = set((x.strip() for x in r.readlines()))
import re as re
results = {}
pattern = re.compile(r'(.*_.*Z0)(\d)(C0\d.tif)')
for file in files:
if file.startswith("08") and not file.endswith("C04.tif"):
res = re.search(pattern, file)
zPlane = str(int(res.group(2))-2)
# overwriting existing file
newname = res.group(1)+zPlane+res.group(3)
if newname in files:
print(newname," overwrites existing file")
# check if two files get renamed into the same one
keyy = results.setdefault(newname,[])
keyy.append( file )
# this outputs nothing
for k in results:
if len(results[k])>1:
print(k,results[k])
您正在通过重命名覆盖现有文件。我从一个文本文件中获取了它们。
将文件A重命名为B(已经存在),然后在处理文件B时将其重命名为C。这样看起来好像文件已被删除。
输出:
08-20-16_01-00-43_G13_T0001F009L01A02Z01C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F004L01A02Z01C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A04Z01C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F008L01A04Z05C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A03Z05C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A03Z04C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A03Z02C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A03Z02C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A03Z03C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F004L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A02Z02C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F001L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F003L01A04Z01C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F001L01A04Z04C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F006L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F010L01A04Z04C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F001L01A04Z05C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A03Z03C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F006L01A04Z04C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F010L01A04Z05C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A02Z05C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A02Z02C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A02Z04C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F002L01A02Z05C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F008L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A04Z01C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F001L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A03Z05C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A03Z04C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A02Z03C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F003L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F004L01A04Z01C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F010L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F003L01A02Z01C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A03Z01C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F008L01A04Z04C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F003L01A04Z03C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A02Z01C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A02Z02C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A02Z02C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A02Z04C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F005L01A03Z02C02.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F006L01A04Z05C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F010L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F008L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F006L01A04Z02C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F004L01A04Z03C01.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F007L01A02Z03C03.tif overwrites existing file
08-20-16_01-00-43_G13_T0001F009L01A03Z02C02.tif overwrites existing file
解决方案:
import os.path
if (os.path.exists(newname)):
# choose another name ....