正如您所见,我已经编写了一段代码(我知道它本可以写得更好)。所以我的问题是,如何为文件夹中的多个文件运行此代码?。我可以使用“for loop”来完成此操作吗?
我的文件位于名为task1的文件夹中,老实说,我想不出执行此操作的方法。谢谢你花时间阅读
bands = list()
filename = "file1000"
with open (filename) as fin:
for line in fin:
bands.append(line.strip())
def partition(bands, start, end):
pivot = bands[start]
low = start + 1
high = end
while True:
while low <= high and bands[high] >= pivot:
high = high - 1
while low <= high and bands[low] <= pivot:
low = low + 1
if low <= high:
bands[low], bands[high] = bands[high], bands[low]
else:
break
bands[start], bands[high] = bands[high], bands[start]
return high
def quick_sort(array, start, end):
if start >= end:
return
p = partition(array, start, end)
quick_sort(array, start, p-1)
quick_sort(array, p+1, end)
def heapify(bands, n, i):
largest = i
l = 2 * i + 1
r = 2 * i + 2
if l < n and bands[i] < bands[l]:
largest = l
if r < n and bands[largest] < bands[r]:
largest = r
if largest != i:
bands[i], bands[largest] = bands[largest], bands[i]
heapify(bands, n, largest)
def heapSort(bands):
n = len(bands)
for i in range(n, -1, -1):
heapify(bands, n, i)
for i in range(n - 1, 0, -1):
bands[i], bands[0] = bands[0], bands[i]
heapify(bands, i, 0)
def mergeSort(bands):
if len(bands) > 1:
mid = len(bands) // 2
L = bands[:mid]
R = bands[mid:]
mergeSort(L)
mergeSort(R)
i = j = k = 0
while i < len(L) and j < len(R):
if L[i] < R[j]:
bands[k] = L[i]
i += 1
else:
bands[k] = R[j]
j += 1
k += 1
while i < len(L):
bands[k] = L[i]
i += 1
k += 1
while j < len(R):
bands[k] = R[j]
j += 1
k += 1
def insertionSort(bands):
for i in range(1, len(bands)):
key = bands[i]
j = i - 1
while j >= 0 and key < bands[j]:
bands[j + 1] = bands[j]
j -= 1
bands[j + 1] = key
import time
start_time = time.time()
quick_sort(bands, 0, len(bands) - 1)
file = open("time.txt","a")
file.write(str(time.time() - start_time))
file.write(" ")
file.close()
start_time = time.time()
heapSort(bands)
file = open("time.txt","a")
file.write(str(time.time() - start_time))
file.write(" ")
file.close()
start_time = time.time()
mergeSort(bands)
file = open("time.txt","a")
file.write(str(time.time() - start_time))
file.write(" ")
file.close()
start_time = time.time()
insertionSort(bands)
file = open("time.txt","a")
file.write(str(time.time() - start_time))
file.write(" ")
file.close()
您可以使用:
现在,您可以在“a”中查看数据帧列表。您可以对它们中的每一个进行迭代,并将其传递给您的函数
您可以使用
os.listdir(folder)
获取文件夹中的所有名称(它将是文件和子文件夹的名称),然后可以使用for
-loop对每个文件名运行代码listdir()
只提供文件名,您需要os.path.join()
来创建文件的完整路径。您还可以使用if
来筛选名称最终,您可以使用
glob
来实现这一点。如果您想筛选名称,那么它可能很有用。对于所有名称,请使用*
。对于文件管理器,您可以使用ie*.txt
或file*
等如果您还需要进入子文件夹,那么可以使用
os.walk(folder)
相关问题 更多 >
编程相关推荐