在过去的两天里,我一直在努力做一些我确信很容易的事情。不幸的是我不太了解python(实际上几乎没有),我只是想编辑一个脚本来工作。
基本上它应该查看文件夹,获取文件名并将文件名分配给变量。但我尝试的一切都失败了:
filepath = "/folder/*.*/"
for path in glob.glob(filepath):
dirname, filename = os.path.split(path)
print(filename)[0:-19]
var1 = filename
var2 = filename[0:-25]
我试过
var1 = str(filename)
但没有任何作用。 任何建议将不胜感激!
答案 0 :(得分:1)
def GetFileList(FindPath,FlagStr=[]):
'''''
#>>>FlagStr=['F','EMS','txt'] # Characters need to include
#>>>FileList=GetFileList(FindPath,FlagStr) #
'''
import os
FileList=[]
FileNames=os.listdir(FindPath)
if (len(FileNames)>0):
for fn in FileNames:
if (len(FlagStr)>0):
#return Specified filename
if (IsSubString(FlagStr,fn)):
fullfilename=os.path.join(FindPath,fn)
FileList.append(fullfilename)
else:
#return all filename
fullfilename=os.path.join(FindPath,fn)
FileList.append(fullfilename)
#sort filename
if (len(FileList)>0):
FileList.sort()
return FileList
答案 1 :(得分:0)
这可能是一个简单的缩进问题。目前,var1
和var2
在 for循环之外。我没有彻底研究你的脚本或它的输出,但是我在下面做的事情会将filename
的值赋给var1
并指定一段文件名(从开头到字符25个地方)从最后到var2
。
filepath = "/folder/*.*/"
for path in glob.glob(filepath):
dirname, filename = os.path.split(path)
print(filename)[0:-19]
var1 = filename
var2 = filename[0:-25]
print(var1)
print(var2)
答案 2 :(得分:0)
现在编写代码的方式,它会为文件夹中的文件数打印许多文件名,丢弃filename
变量并在新路径上再次运行。如果有for
循环,则每次迭代都会丢弃变量,以便为新变量腾出空间。所以这段代码:
filepath = "/folder/*.*/"
for path in glob.glob(filepath):
dirname, filename = os.path.split(path)
print( filename )[0:-19]
Var1 = filename
Var2 = filename[0:-25]
最初为您提供的每个路径运行,然后在vars
中引用它时保留仅最后一个文件名。我想你想要的是这样的:
for path in filepath:
dirname, filename = os.path.split(path)
print(filename[0:-19])
var1 = filename
var2 = filename[0:-25]
从那里,您可以使用var1
和var2
执行任何操作。
答案 3 :(得分:0)
试试这个并从那里开始工作:
import os
filepath = "/"
var1 = os.listdir(filepath)
var2 = os.listdir(filepath)[2]
print var1
print
print var2