用i中的变量创建文件名

2024-06-26 03:59:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,仍在努力解决问题。我有大量的数据文件,我需要连接,但首先我需要写的文件名,我想合并成一个文本文件,以便我可以在下一个代码中调用它们。这将是为不同的年份,所以我能够设置变量'年'的一年,我想要的,所以它改变了我的代码中的所有文件。这就是我目前的情况:

year = '07'

filenames = ['gdas1.jan"year".w1', 'gdas1.jan"year".w2','gdas1.jan"year".w3', 'gdas1.jan"year".w4', 'gdas1.jan"year".w5']
with open('D:/hysplitmergeoutput/hysplitnames"year"', 'w') as outfile:
for fname in filenames:
    with open(fname) as infile:
        for line in infile:
            outfile.write(line)

print hysplitnames"year"

Tags: 代码inforaswithlineopenyear
3条回答

可以使用字符串格式。 例如,如果要替换整数,则必须使用标识符%i like:

a = 1
b = "newstring%i" % a # print b  > "newstring1"

对于您的情况:

for year in range(7,15,1):
   # year string
   if year<10: 
         year_str = "0%i" % year
   else: 
         year_str = "%i" % year


   # Build the array of filenames
   filenames = ["gdas1.jan%s.w" % year_str +  str(k) for k in range(1,6)]

   with open('D:/hysplitmergeoutput/hysplitnames%s' % year_str, 'w') as outfile:
        for fname in filenames:
            with open(fname) as infile:
                for line in infile:
                    outfile.write(line)

   print hysplitnames+"%s" % year_str

字符串的标识符是%s,浮点数的标识符是%.4f(有4位数字)。你知道吗

你应该看看字符串^{}

您可以这样使用映射函数:

year = "07"
filenames = ['gdas1.janYEAR.w1', 'gdas1.janYEAR.w2','gdas1.janYEAR.w3']
filenames_yeared = map(lambda x: x.replace("YEAR", year), filenames)

您将得到:

['gdas1.jan07.w1', 'gdas1.jan07.w2','gdas1.jan07.w3']

这就是你要找的吗?你知道吗

相关问题 更多 >