我正在尝试一个简单的命令,打开并读取一个文件。我创建了一个文本编辑文件并将其保存为test.txt(此文件上有无关文本)。当我运行程序时没有错误并执行打印命令,除了打印错误的信息。这是我的代码:
f = open("test2.docx","r")
line1 = f.readline()
line2 = f.readline()
line3 = f.readline()
print line1, line2, line3
这是在文本文件中写的:
COF180;10;40
COF181;10;90
PHF110;15;73
PHF210;15;81
这是该计划打印出来的内容:
{\rtf1\ansi\ansicpg1252\cocoartf1344\cocoasubrtf720
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
这似乎是关于文本本身的某种隐藏代码?请帮助我不知道为什么会这样。如何让它打印该文件中的实际文本?
答案 0 :(得分:4)
如果您使用的是TextEdit,请从菜单栏中选择格式 - >制作纯文本。
答案 1 :(得分:0)
如果您使用的是Mac,则必须对多个文件执行此操作,请使用def dict_key_filter(obj, obj_filter):
def inner_dict_key_filter(obj): return dict_key_filter(obj, obj_filter)
def to_keep(subtree): return not isinstance(subtree, (dict, list)) or subtree
def build_subtree(key, value):
if key in obj_filter:
return copy.deepcopy(value) # keep the branch
elif isinstance(value, (dict, list)):
return inner_dict_key_filter(value) # continue to search
return [] # just an orphan value here
if isinstance(obj, dict):
key_subtree_pairs = ((key, build_subtree(key, value)) for key, value in obj.items())
return {key:subtree for key, subtree in key_subtree_pairs if to_keep(subtree)}
elif isinstance(obj, list):
return list(filter(to_keep, map(inner_dict_key_filter, obj)))
return []
实用程序:
dict1 = {
'test1': { 'test2':[1,2] },
'test3': [
{'test6': 2},
{
'test8': { 'test9': 23 }
}
],
'test4':{'test5': 0}
}
obj_filter = ['test5' , 'test9']
print (dict_key_filter(dict1, obj_filter))
# {'test3': [{'test8': {'test9': 23}}], 'test4': {'test5': 0}}
这也适用于扩展名为.doc的文件。