<p>Sandip的答案应该有用,但如果你特别想用你在问题中所说的方式来回答,这可能会奏效:</p>
<pre><code>import os
src_filename = "access.log.1.txt"
dst_dir = "test"
for filename in os.listdir(dst_dir):
# Filter files based on number of . in filename
if filename.count(".") < 4:
continue
# We need to remove the datetime extension before comparing with our filename
filename_tokens = filename.split(".") # List of words separated by . in the filename
print "Tokens:", filename_tokens
# Keep only indexes 0, 1, 2 and 4 (exclude index 3, which is the datetime-string)
datetime_string = filename_tokens.pop(3) # pop() also removes the datetime-string
print "Datetime:", datetime_string
dst_filename = ".".join(filename_tokens)
print "Destination filename:", dst_filename
# Check if the destination filename now matches our source filename
if dst_filename == src_filename:
# Get full path of file to be deleted
filepath = os.path.join(dst_dir, filename)
# Delete it
print "Deleting:", filepath
os.remove(filepath)
print " "
</code></pre>
<p>注意,这种方法假设所有的目标文件名都与问题中的一样,也就是说,它们都有4个句点(<code>.</code>),并且日期时间字符串总是在第三个和第四个句点之间。在</p>