好的,我有一个python函数返回此EDIT [TK打开文件对话框]:
<open file u'C:/WINDOWS/system32/calc.exe', mode 'rb' at 0x0218B390>
我正在用TK编写调试器,我打开调试器并启动一个文件。如何在第一组引号中提取最新内容? ('C:/WINDOWS/system32/calc.exe'
)引号内的位置会发生变化,所以我不能只设置我想要的位置。
答案 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