Python代码打开目录中的所有文件并打印它们的第一行
文件夹abc中有2个“.XFR”文件,其中包含纯文本。 目的是编写一个脚本,打开每个文件并打印它们的第一行。 尝试了以下代码:Python代码打开目录中的所有文件并打印它们的第一行,python,python-3.x,Python,Python 3.x,文件夹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
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'
(基本)C:\Users\Ajay\Desktop>python readline.py
['1234.XFR','23465.XFR']
回溯(最近一次呼叫最后一次):
文件“readline.py”,第14行,在
f=打开(文件“r”)
PermissionError:[Errno 13]权限被拒绝:
'C:\\Users\\Ajay\\Desktop\\abc'
如何解决这个问题?首先,使用
os.walk
的初始代码是多余的。您正在使用glob
覆盖它。移除它
第二,你用错了。它接受一个表达式来告诉它您要查找哪些文件
尝试:
这样,它只会给您以“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))
在path变量的末尾添加“\”,然后f=open(path+file,'r')。如果您调试(打印)变量文件,您将得到一个“错误”,将文件名附加到glob.glob(路径)中,这是一个权限错误PermissionError:[Errno 13]权限被拒绝:他必须给他们读取权限谢谢。这很有帮助。我认为你的答案是正确的,如果你解释一下为什么它给出了一个非常错误的许可错误,再详细说明一下,我们都会很高兴的
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))