让我们假设我有10个名为“1”,“2”,......,“10”的文件更容易。 今天我处于这样一种情况,我想在脚本中加载那10个文件,一次一个。 我正在使用该代码,该代码在我想要在这些文件中包含的数据上使用的数学运算之间连续写入十次:
Tk().withdraw()
filename2 = askopenfilename()
with load(filename2) as data:
..."mathematical operations"...
Tk().withdraw()
filename3 = askopenfilename()
with load(filename3) as data:
等等...
这样打开10个对话框,一个接一个,我需要输入要加载它的文件的名称(所以我输入“1”,点击回车,然后在下一个框中输入“2”,点击回车,blablabla)。
我正在寻找一种只打开一个对话框的方法(或者你可能知道更聪明的事情),并在一行中输入一个正确的数字顺序,以便脚本在一个时间加载一个他自己的时间。
换句话说,在短时间内我将有300个文件,我只想输入一次:1,2,3,4,5,...,300并点击输入,而不是做我做的事情如前所述。 或者也许只是输入“300”的方法,脚本知道他必须查找从“1”开始的文件,然后逐个递增。
答案 0 :(得分:0)
open
函数只接受一个字符串,您可以以任何方式创建该字符串。您可以将文件名的静态部分与for循环中的更改数字连接起来:
s_pre = 'file'
s_ext = '.txt'
numFiles = int(raw_input("number of files: "))
for i in range(1, numFiles + 1):
filename = s_pre + str(i) + s_ext
with open(filename) as data:
## input stuff
## math stuff
我认为load
是你的功能,你也可以在循环中将这个文件名传递给load
。