Python代码打开目录中的所有文件并打印它们的第一个lin

2024-09-28 01:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

文件夹abc中有2个“.XFR”文件,其中包含纯文本。 目的是编写一个脚本,打开每个文件并打印它们的第一行。 尝试了以下代码:

import os
import glob   

f = []
path = r"C:\Users\Ajay\Desktop\abc"
for (dirpath, dirnames, filenames) in os.walk(path):
    f.extend(filenames)
    break
print(f)

files=glob.glob(path)   
for file in files:     
    f=open(file, 'r')  
    f.readlines()
    print(f)    
    f.close()

它正确地列出了所有文件,但是对于fileopen,它给了我一个错误:

(base) C:\Users\Ajay\Desktop>python readline.py
['1234.XFR', '23465.XFR']
Traceback (most recent call last):
File "readline.py", line 14, in <module>
f=open(file, 'r')
PermissionError: [Errno 13] Permission denied: 
'C:\\Users\\Ajay\\Desktop\\abc'

Screenprint

如何解决这个问题?你知道吗


Tags: 文件pathinimportforosusersglob
1条回答
网友
1楼 · 发布于 2024-09-28 01:28:53

首先,带有os.walk的初始代码是冗余的。您正在用glob覆盖它。拆下它。你知道吗

第二,你用错了^{}。它接受一个表达式来告诉它您要查找哪些文件。你知道吗

尝试:

files=glob.glob(path + os.sep + "*.XFR")   

这样,它只会给您以"XFR"结尾的文件。确保箱子匹配。你知道吗

path = r"C:\Users\Ajay\Desktop\abc"
files=glob.glob(path + os.sep + '*.XFR')   
for f in files:     
    with open(f, 'r') as fp:
        print(next(fp, "no data in file: " + f))    

相关问题 更多 >

    热门问题