在没有扩展名的情况下在Python中读取文件

时间:2011-02-23 18:55:09

标签: python

我想在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内容。我该怎么做?

4 个答案:

答案 0 :(得分:5)

  1. 如果您想使用glob模块,则必须首先import

    import glob
    for infile in glob.glob(os.path.join(path, '*')):
        review_file = open(infile,'r').read()
        print review_file
    
  2. 您确定您的文件不包含您获得的二进制数据吗?

答案 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