【发布时间】:2015-02-24 23:47:20
【问题描述】:
一个文件夹里有很多文件
sample-file.dat host-111.222.333.444.dat win.2k3.dat 你好.micro.world.dat
我用的是拆分
file = os.path.basename(path)
filename = file.split(".")[0]
但它并不适用于所有文件,有没有更好的方法来读取整个文件名,即使是点并且只忽略 .dat 扩展名
【问题讨论】:
一个文件夹里有很多文件
sample-file.dat host-111.222.333.444.dat win.2k3.dat 你好.micro.world.dat
我用的是拆分
file = os.path.basename(path)
filename = file.split(".")[0]
但它并不适用于所有文件,有没有更好的方法来读取整个文件名,即使是点并且只忽略 .dat 扩展名
【问题讨论】:
试试
if file.endswith('.dat'):
filename = file[:-4]
file[:-4] 表示获取字符串file 并删除最后四个字符
或者,请参阅此问题以获取更多答案:How to replace (or strip) an extension from a filename in Python?
【讨论】:
.dat)。
我会使用rfind:
>>> s = "host-111.222.333.444.dat"
>>> filename = s[:s.rfind(".")]
>>> filename
'host-111.222.333.444'
类似于find(),但它返回最高索引。
希望对你有帮助!
【讨论】:
如果它们有多个点,则使用 join 进行切片和重组!
file = os.path.basename(path)
filename = ".".join(file.split(".")[:-1])
这将删除最后一点之后的内容,而不检查内容,即
【讨论】: