Python 使用文件处理回溯:错误:找不到文件

Python 使用文件处理回溯:错误:找不到文件,python,python-3.x,Python,Python 3.x,我试图读取特定文件夹中的所有文件,然后读取每个文件的第一行,创建一个列表,然后将其与现有列表匹配 下面是代码和输出,看起来我的第一个循环实例运行正常,然后抛出了某种错误: import os import sys import bz2 import glob # f = open('C:\\Users\sauris\Desktop\pyfile\out1.txt', 'w') # sys.stdout = f path = 'C://Users/sauris/Desktop/pyfile/f

我试图读取特定文件夹中的所有文件,然后读取每个文件的第一行,创建一个列表,然后将其与现有列表匹配

下面是代码和输出,看起来我的第一个循环实例运行正常,然后抛出了某种错误:

import os
import sys
import bz2
import glob

# f = open('C:\\Users\sauris\Desktop\pyfile\out1.txt', 'w')
# sys.stdout = f

path = 'C://Users/sauris/Desktop/pyfile/folder-test'

for filename in os.listdir(path):
    try:
        print('Checking file-', filename)
        handle = bz2.BZ2File(filename, 'rb')
        # print(name)
        # handle = bz2.BZ2File(name, 'rb'
    except:
        raise
        print('no files found')

lst2 = ['But', 'soft', 'what', 'light', 'through', 'yonder', 'window', 'breaks']
firstline = (handle.readline().decode()).rstrip()

st = (firstline.split(' '))

if st == lst2:
    print('Header Validation: OK')
    print('Column Values are Same And In Order')
elif set(st) == set(lst2):
    print('Header Validation: NOT OK')
    print('Headers Are Same But Not In Order')
else:
    print('Header Validation: NOT OK')
    print('Headers Are Different Also Not In Order')

if len(st)==len(lst2):
    print('Number Of Column :OK')
else:
    print('Number Of Column:NOT OK')

handle.close()
输出:

C:\Users\sauris\Desktop\pyfile>folder-read.py

Checking file- sampledatafile.txt.bz2
Header Validation: OK
Column Values are Same And In Order
Number Of Column :OK
Checking file- sampledatafile2.txt.bz2

Traceback (most recent call last):
File "C:\Users\sauris\Desktop\pyfile\folder-read.py", line 13, in <module>
File "C:\Users\sauris\AppData\Local\Programs\Python\Python36-32\lib\bz2.py", l
ine 96, in __init__
self._fp = _builtin_open(filename, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'sampledatafile2.txt.bz2'
C:\Users\sauris\Desktop\pyfile>folder-read.py
正在检查文件-sampledatafile.txt.bz2
标题验证:确定
列值相同且顺序相同
列数:OK
正在检查文件-sampledatafile2.txt.bz2
回溯(最近一次呼叫最后一次):
文件“C:\Users\sauris\Desktop\pyfile\folder read.py”,第13行,在
文件“C:\Users\sauris\AppData\Local\Programs\Python\Python36-32\lib\bz2.py”,l
ine 96,在init中__
self.\u fp=\u内置\u打开(文件名,模式)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“sampledatafile2.txt.bz2”
试试:


而不是
bz2.bz2文件(文件名'rb')
。我认为您唯一的问题是没有正确添加路径。

现在我在列表中遇到语法错误()C:\Users\sauris\Desktop\pyfile>folder-read.py File“C:\Users\sauris\Desktop\pyfile\folder read.py”,第12行lst2=['But'、'soft'、'what'、'light'、'through'、'yonder'、'window'、'break']^SyntaxError:无效的语法错误。你必须小心。另外,当你发布你的代码时,你必须正确地缩进它,因为文件的读取似乎不是在for循环中完成的。它起作用了,不知道为什么会抛出syntx错误,重写了代码,效果很好:)
bz2.BZ2File(os.path.join(path,filename),'rb')