我想在Python 2.6中读取一个没有扩展名的(基本上是文本文件)文件。我尝试了以下代码,但有以下错误。
for infile in glob.glob(os.path.join(path + "Bookmarks",'*')):
review_file = open(infile,'r').read()
print review_file
- >全局名称glob未定义
f = open(path, "r")
text = f.readlines()
print text
- >打印“x00 \ x00 \ x00 \ x00 \ x00 \”等,这不是此文件中的内容。
编辑: - >文件的直接符号是我想要的,例如,如果文件中有“023492034blackriver0brydonmccluskey”,它会(截至目前)用一堆二进制值提取它,而我只想要exacy内容。我该怎么做?
答案 0 :(得分:5)
如果您想使用glob
模块,则必须首先import
:
import glob
for infile in glob.glob(os.path.join(path, '*')):
review_file = open(infile,'r').read()
print review_file
您确定您的文件不包含您获得的二进制数据吗?
答案 1 :(得分:0)
您是否尝试过在文字模式下打开它。但根据文档,'r'应该是'rt'的同义词。
f = open(path, "rt")
text = f.readlines()
print text
答案 2 :(得分:0)
您当前的代码会查看目录中的每个文件;如果你只想要没有扩展名的文件,你应该使用glob.glob('*。')
答案 3 :(得分:0)
根据OP的评论,这个问题需要改写为“我有一个NUL文件,我如何摆脱它们,所以我只看到文本”。答案如下:
with open("myfile", 'rb') as f:
data = f.read()
clean_data = data.replace('\0', '')
text = clean_data.decode('ascii') # Or other encoding, if text is not ASCII