Python 如何将文件名从文件夹提取到变量而不是列表?
我想从文件夹中提取文件名,并能够将这些名称用作字符串: 我可以从文件夹中获取文件名,但它们将进入列表。理想情况下,我不想迭代列表。迄今为止的代码:Python 如何将文件名从文件夹提取到变量而不是列表?,python,string,python-3.x,Python,String,Python 3.x,我想从文件夹中提取文件名,并能够将这些名称用作字符串: 我可以从文件夹中获取文件名,但它们将进入列表。理想情况下,我不想迭代列表。迄今为止的代码: from os import listdir from os.path import isfile, join f = '/path/to/file/*.sql' for files in glob.glob(f): with open(files, 'r',encoding = "utf-8", errors="replace") as
from os import listdir
from os.path import isfile, join
f = '/path/to/file/*.sql'
for files in glob.glob(f):
with open(files, 'r',encoding = "utf-8", errors="replace") as f:
path = "/path/to/file/folder"
onlyTxtFiles = [f for f in listdir(path) if isfile(join(path, f)) and f.endswith(".sql")]
不确定如何将文件名字符串放入变量“onlyTxtFiles”
编辑
我希望能够做到这一点:
onlyTxtFiles = 'file name'
str1 = onlyTxtFiles + 'test'
编辑:
这是我做的for循环,但我没有在文件上循环:
f = '/path/to/file/sql_files/*.sql'
for files in glob.glob(f):
with open(files, 'r',encoding = "utf-8", errors="replace") as f:
path = "/path/to/file/sql_files/"
onlySqlFiles = [f for f in listdir(path) if isfile(join(path, f)) and f.endswith(".sql")]
for x in onlySqlFiles:
file_name_insert = x
我做错了什么 您说您希望代码类似于
onlyTxtFiles = 'file name'
str1 = onlyTxtFiles + 'test'
但是如果onlyTxtFiles
是一个列表,那么它将返回一个错误
一种方法是
onlyTxtFiles = 'file name'
str1 = onlyTxtFiles[0] + 'test'
对于每个期望值
或者你可以使用for循环我很困惑。如果您有多个文件名,并且希望这些文件名位于一个变量中,为什么不需要一个列表?将多个值关联到一个名称几乎正是列表的用途。@Kevin我做了一次编辑,我不确定如何将文件名去掉,以便将它们附加到不同的字符串。例如,您的目录包含文件“foo”、“bar”和“baz”。你希望结果是什么?三个具有“footest”、“bartest”和“baztest”值的对象?这些变量的名称是什么<代码>str1、
str2
和str3
?如果是这样的话,你要求的是变量,99.9999%的时候,你应该使用列表或字典。相关阅读:“这是我做的一个for循环,但我没有在文件上循环:”当然可以。什么让你觉得你不是?如果您要说“好的,在循环之后,我打印(文件名插入),它只打印一个值”,那么您的问题是:您应该在循环内部执行此操作。@Kevin您是正确的。谢谢,所以我选择了环线路线。但这里的问题是,每个for循环都不会迭代文件名。参见编辑