gpt4 book ai didi

python - 我如何从 os.listdir 结果中排除目录?

转载 作者:行者123 更新时间:2023-11-28 22:27:14 24 4
gpt4 key购买 nike

我正在制作一个脚本,它将使用 b64/b16 对目录中的文件进行编码,并且我正在使用 os.listdir 来这样做,但它也列出了导致问题的目录,因为现在它正在尝试对目录进行编码,就好像它是一个文件。

我怎样才能从 os.listdir 结果中排除目录?

import os
import sys
import base64
import codecs
import time
import string
import glob

#C:\\Users\\Fedora\\Desktop\\Win 10
path = "C:\\Users\\Fedora\\Desktop\\Win 10"
dirs = os.listdir(path)
files = []
filecount = 0
fileprogress = 0
for file in dirs:
files.append(file)
filecount = filecount + 1

for x in files:
os.system("cls")
fileprogress = fileprogress + 1
print("File " + str(fileprogress) + "/" + str(filecount))
print("Encrypting " + x + "...")
inputfile = open(path + "\\" + x, "rb")
data = inputfile.read()
inputfile.close()
data = base64.b16encode(data)
data = base64.b64encode(data)
data = base64.b16encode(data)
data = base64.b64encode(data)
data = base64.b16encode(data)
outputfile = open(path + "\\" + x + ".crypt", "wb")
outputfile.write(data)
outputfile.close()

最佳答案

使用filter

filepath = "C:\\Users\\Fedora\\Desktop\\Win 10"
dirs = os.listdir(path)
files = filter(lambda x:os.path.isfile(os.path.join(filepath, x)), dirs)

或列表理解 os.path.isfile()

filepath = "C:\\Users\\Fedora\\Desktop\\Win 10"
dirs = os.listdir(path)
files = [x for x in dirs if os.path.isfile(os.path.join(filepath, x))]

关于python - 我如何从 os.listdir 结果中排除目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com