Python:在第一组引号中提取数据?

时间:2015-10-23 18:41:51

标签: python string

好的,我有一个python函数返回此EDIT [TK打开文件对话框]:

<open file u'C:/WINDOWS/system32/calc.exe', mode 'rb' at 0x0218B390>

我正在用TK编写调试器,我打开调试器并启动一个文件。如何在第一组引号中提取最新内容? ('C:/WINDOWS/system32/calc.exe')引号内的位置会发生变化,所以我不能只设置我想要的位置。

3 个答案:

答案 0 :(得分:3)

看起来您正在打印出打开文件的FileObject。如果是这种情况:FileObject也有一个name属性,只返回文件的路径

with open('/tmp/test.txt', 'w') as file:
    print(file)
    print(file.name)
# <_io.TextIOWrapper name='/tmp/test.txt' mode='w' encoding='UTF-8'>
# /tmp/test.txt

答案 1 :(得分:0)

没有正则表达式

data = '<open file u\'C:/WINDOWS/system32/calc.exe\', mode \'rb\' at 0x0218B390>'
print data.split('\'')[1]

使用正则表达式

import re

data = '<open file u\'C:/WINDOWS/system32/calc.exe\', mode \'rb\' at 0x0218B390>' 
print re.findall('\'(.*?)\'', data)[0]

答案 2 :(得分:-1)

st = "<open file u'C:/WINDOWS/system32/calc.exe', mode 'rb' at 0x0218B390>".split()[2]
import ast
col2 = ast.literal_eval(st)[0]
print(col2)
C:/WINDOWS/system32/calc.exe