Py学习  »  Python

Python不在for循环中打印文件内容

Zac Isa • 6 年前 • 1807 次点击  

我有以下代码:

import os

dir = os.listdir('files/')

for file in dir:
    print(file)

    with open(file, 'r') as f:
        x = f.readlines()
        print(x)

每当我运行它时,就会得到以下输出:

TextFile1.txt
[]
TextFile2.txt
[]

在第2行和第4行中,它打印出一个空数组,即使文件中有内容。

TextFile1.txt包含:

code 1
email 1
pw 1

文本文件2.txt包含:

code 2
email 2
password 2

我不知道为什么在文件不为空的情况下将其打印为空数组,希望能提供帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52392
文章 [ 1 ]  |  最新文章 6 年前
Iain Shelvington
Reply   •   1 楼
Iain Shelvington    6 年前

os.listdir 只返回文件名,不返回这些文件的完整路径,在打开之前需要连接目录名和文件名

import os

BASE_DIR = 'files/'
dir = os.listdir(BASE_DIR)

for file in dir:
    print(file)

    with open(os.path.join(BASE_DIR, file), 'r') as f:
        x = f.readlines()
        print(x)