Python字符串解析:带空格的文件名
这可能不是最常见的文件名解析问题,但我有一个程序,它以以下格式显示文件列表:
Filename.ext Location
一些例子是:
sampleFile.jpg C:\Images\my jpgs another file.bmp C:\Images\myBmps
文件名和位置之间用一个空格分开。正如所示,我的文件名中可以有空格。
我想从每一行中提取文件名,但似乎找不到好的方法来做到这一点。我想过搜索某个特定字符的位置,然后从0到(位置 - 偏移量)提取子字符串,其中偏移量是我需要回退的字符数。但我觉得没有一个字符可以用来搜索,这样硬编码的偏移量就能保证有效。
3 个回答
1
你的文件名中有没有其他的句号(.
),除了在文件扩展名之前的那个?如果没有的话,你应该可以处理像这样的内容:
1 find first instance of '.'
2 step to the next space
3 that space is the delimiter between file name and location
1
好吧,如果你有不同的盘符,比如 C:\、D:\ 等等,你可以直接根据这些字符来分割。
import re
f=open("file")
for line in f:
print re.split("[C-Z]:",line)[0]
f.close(0
2
我可能会用正则表达式来抓取任何以驱动器字母开头到行尾的内容,类似这样的:
import re
matchWinPaths = re.compile("^.*([A-Z]:\\.+$)")
然后用下面的内容来匹配每一行:
matches = re.match(line, matchWinPaths)
winPath = matches.group(1)