在python中读取当前目录中所有文件的内容

在python中读取当前目录中所有文件的内容,python,python-3.x,Python,Python 3.x,我可以使用以下python脚本打印当前目录中所有文件的名称: import psycopg2 from config import config import os path = 'path_to_current_dir' params = config() conn = None try: #read the connection parameters params = config() conn = psycopg2.connect(**params) c

我可以使用以下python脚本打印当前目录中所有文件的名称:

import psycopg2
from config import config
import os

path = 'path_to_current_dir'
params = config()

conn = None
try:
    #read the connection parameters
    params = config()
    conn = psycopg2.connect(**params)
    cur = conn.cursor()

    for root, dirs, files in os.walk(path):
        for file in files:
            if file.endswith('.plt'):
                print(file)
                #f = open(file, 'r')

    cur.close()
    conn.commit()
except (Exception, psycopg2.DatabaseError) as error:
    print(error)
finally:
    if conn is not None:
        conn.close()
输出:

20090205094627.plt
20090312135415.plt
20090216055722.plt
20090311065333.plt
20090418032222.plt
20090119072534.plt
我想读取每个文件的内容,因此我取消了对open的注释。。上面脚本中的语句。但是,即使是目录中的第一个文件也不会被读取,并报告以下错误:

$ python check.py 
20090205094627.plt
[Errno 2] No such file or directory: '20090205094627.plt'

我缺少读取这些文件的正确逻辑。如何修复此问题?

您需要将完整路径添加到open函数中

f = open(os.path.join(root, file), 'r')
使用打开文件将是更好的做法


with with文件将在退出with语句后关闭。通过这种方式,您将确保文件在使用后关闭

您需要将完整路径添加到open函数中

f = open(os.path.join(root, file), 'r')
使用打开文件将是更好的做法


with with文件将在退出with语句后关闭。通过这种方式,您将确保文件在使用后关闭

是否忘记在文件前加上子目录名?您只打印文件名,而不是文件的完整相对路径。您至少需要路径。您需要将目录名与文件名相结合。文件不在运行脚本的目录中。是否忘记在文件前加上子目录名?您只打印文件名,而不是文件的完整相对路径。您至少需要路径。您需要将目录名与文件名相结合。文件不在您运行脚本的目录中。它回答了您的问题吗?当然,现在我可以继续。它回答了您的问题吗?当然,现在我可以继续。