gpt4 book ai didi

python - 迭代目录中的文件并将文件名用作变量,并将文件路径分配给变量

转载 作者:行者123 更新时间:2023-12-04 10:48:18 26 4
gpt4 key购买 nike

我试图遍历一个文件夹并使用 Pyspark 在 DataBricks 中获取文件名和这些文件的路径。
突然想到,如果我们可以将文件名作为变量并将路径分配给名为变量的相应文件。
我们可以使用 dbutils 来创建小部件并将文件名指定为参数,以使事情变得更容易。
所以我一直致力于这个过程,直到获得文件和文件名的路径。
但是我无法弄清楚变量的创建和在各自的文件名变量中分配各自文件的路径
这是代码:

import pandas as pd
import os
list1 =[]
list2 =[]
directory='/dbfs/FileStore/tables'
dir='/FileStore/tables'
for filename in os.listdir(directory):
if filename.endswith(".csv") or filename.endswith(".txt"):
file_path=os.path.join(dir, filename)
print(file_path)
print(filename)
list1.append(file_path)
list2.append(filename)

提前致谢

最佳答案

如果您设置为具有文件名的变量分配路径,那么您可以尝试:

...
for filename in os.listdir(directory):
if filename.endswith(".csv") or filename.endswith(".txt"):
file_path=os.path.join(dir, filename)
print(file_path)
print(filename)
exec("%s = '%s'" % (filename, file_path))

请注意,额外的一组引号可避免语法和名称错误。然而,这个解决方案仍然充满了问题。例如,它看起来像是对 exec 的调用。将文件路径中的反斜杠作为 unicode:
filename = 'file1'
filepath = '\maindir\foo'
exec("%s = '%s'" % (filename, filepath))
file1
'\\maindir\x0coo'

但是字典似乎更适合他的情况:
...
filenames_and_paths = {}
for filename in os.listdir(directory):
if filename.endswith(".csv") or filename.endswith(".txt"):
file_path=os.path.join(dir, filename)
print(file_path)
print(filename)
filenames_and_paths[filename] = file_path

不知道为什么你为名称和路径创建了两个列表,但如果需要它们,你也可以使用字典理解:
filenames_and_paths = {name:path for name,path in zip(list1, list2)}

关于python - 迭代目录中的文件并将文件名用作变量,并将文件路径分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59597634/

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