如何为文件命名?

时间:2017-01-22 22:39:21

标签: python numpy

对于我循环中的每次迭代,我需要将'我的迭代次数'作为文件的名称,例如,目标是保存:

my first iteration in the first file.
my second iteration in the second file.
....

我使用的是库numpy,但是我的代码没有给我我需要的解决方案,实际上我的实际代码要求我在每次迭代后输入文件的名称,如果我有6则很容易或者7次迭代,但是在我有100次迭代的情况下,它没有意义:

for line, a in enumerate(Plaintxt_file):
    #instruction
    #result
    fileName = raw_input()
    if(fileName!='end'):
        fileName = r'C:\\Users\\My_resul\\Win_My_Scripts\\'+fileName
        np.save(fileName+'.npy',Result)
ser.close()

如果你能帮助我,我将非常感激。

4 个答案:

答案 0 :(得分:3)

从行号创建您的文件名:

for line, a in enumerate(Plaintxt_file):
    fileName = r'C:\Users\My_resul\Win_My_Scripts\file_{}.npy'.format(line)
    np.save(fileName, Result)

首先是文件名file_0.npy。 如果您想以1开头,请在enumerate中指定起始索引:

for line, a in enumerate(Plaintxt_file, 1):

当然,这假设您不需要line从其他任何地方开始0

答案 1 :(得分:1)

我不能100%确定您的问题是什么,但据我所知,您只需要对文件名进行一些字符串格式化。

所以,你想要,比如说100个文件,每个文件都是在迭代后创建的。最简单的方法可能是使用以下内容:

for line, a in enumerate():
    #do work
    filename = "C:\\SaveDir\\OutputFile{0}.txt".format(line)
    np.save(filename, Result)

根据您的需求,它不会100%准确,但希望这会给您提供这个想法。

答案 2 :(得分:0)

如果您刚刚使用命名方案为“0.npy”,“1.npy”的100个空白文件,一直到“n-1.npy”,一个简单的for循环就可以了工作(不需要numpy!):

n = 100
for i in range(n):
    open(str(i) + ".npy", 'a').close()

此循环运行n次迭代,并使用与当前迭代对应的文件名吐出空文件

答案 3 :(得分:0)

如果您不关心文件的顺序,并且您不希望多次循环运行的文件相互覆盖,则可以使用随机unique IDs

from uuid import uuid4
# ...    
for a in Plaintxt_file:
    fileName = 'C:\\Users\\My_resul\\Win_My_Scripts\\file_{}.npy'.format(uuid4())
    np.save(fileName, Result)

旁注: 不要一起使用原始字符串和转义反斜杠。 它是r"C:\path""C:\\path" - 除非您想在路径中使用双反斜杠。我不知道Windows是否喜欢它们。