python中filename什么意思_python中的动态文件名

我在编码算法的文件管理部分时遇到了一个问题。在

我的文件管理器的目的是获取一个源文件,然后逐行读取,并根据过滤器将每一行拆分到一个新文件中。在

数据用表格隔开\t。在

过滤器由收集具有相同第4个参数的所有行组成(可以说它正在对它们排序)。在

我的问题是,我想要根据这些参数的动态文件名,这是一个整数。

因此,主文件将填充如下算法的一部分:Logfile.write("%s\t %s\t %s\t %s\t %s\t %s\n" % (count, BSid, UEid, nbr_RB, Metric,))

nbr_RB将是我的过滤器参数,它是一个从1到100的随机整数集。在

我要做的是自动化这些代码:

^{pr2}$

所以每次文件名中都有nbr_RB[i],我不会写100行。在

当我使用过滤器时:ligne = Logfile.split(“\n”)

par = ligne.split(“\t”)

if par [3] = nbr_RB[1]:

file_nbrRB[1].write (“%s \n” % (ligne))

elif par [3] = nbr_RB[4]:

file_nbrRB[4].write (“%s \n” % (ligne))

.

.

.

elif par [3] = nbr_RB[i]:

file_nbrRB[i].write (“%s \n” % (ligne))

我找到了一些解决方案,发现了这个:

对于2.6之前的Python版本,请使用字符串格式运算符%:filename = "ME%d.txt" % i

对于2.6及更高版本,请使用str.格式()方法:filename = "ME{0}.txt".format(i)

尽管第一个示例在2.6中仍然有效,但第二个示例是首选。

如果要以这种方式命名的文件超过10个,则可能需要添加前导零,以便在目录列表中正确排列文件:filename = "ME%02d.txt" % i

filename = "ME{0:02d}.txt".format(i)

这将生成ME00.txt到ME99.txt等文件名。对于更多的数字,将示例中的2替换为更大的数字(例如ME{0:03d}.txt)。

以及:import os, sys

path = "c:/temp"

for filename in ["chas.txt", "dave.txt"]:

f = open (os.path.join (path, filename))

print filename

print f.read ()

print

f.close ()

编辑:我想我对我的问题解释得很糟糕,以下是我为第一个日志文件编写的代码,在进行任何处理之前:logfile= open('/usr/local/Python-3.3.0/my_tests/fichier_log/logfile_%s_%s.txt' %c %z , 'a')

错误就在这里:Traceback (most recent call last):

File "/usr/local/Python-3.3.0/my_tests/log_files.py", line 181, in

main()

File "/usr/local/Python-3.3.0/my_tests/log_files.py", line 167, in main

logfile= open('/usr/local/Python-3.3.0/my_tests/fichier_log/logfile_%s_%s.txt' %c %z , 'a')

TypeError: not enough arguments for format string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值