在Python(在Mac上)读取文件时,打印出来的文本不正确

时间:2015-03-20 20:19:51

标签: python

我正在尝试一个简单的命令,打开并读取一个文件。我创建了一个文本编辑文件并将其保存为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;}

这似乎是关于文本本身的某种隐藏代码?请帮助我不知道为什么会这样。如何让它打印该文件中的实际文本?

2 个答案:

答案 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的文件。