如何迭代文件,执行操作,然后在Python中重命名它们?
我有一个目录中的文件,名为hosts\u access\u log\u 00.txt,hosts\u access\u log\u 01.txt等等,直到13岁。 并且各个文件的输出必须存储在各个文件中:bytes_hosts_access_log_00.txt、bytes_hosts_access_log_01.txt等等,直到13,并且它们应该存储在当前目录中。 我如何做到这一点? 在上面的代码中,我只能用1个文件实现这一点如何迭代文件,执行操作,然后在Python中重命名它们?,python,Python,我有一个目录中的文件,名为hosts\u access\u log\u 00.txt,hosts\u access\u log\u 01.txt等等,直到13岁。 并且各个文件的输出必须存储在各个文件中:bytes_hosts_access_log_00.txt、bytes_hosts_access_log_01.txt等等,直到13,并且它们应该存储在当前目录中。 我如何做到这一点? 在上面的代码中,我只能用1个文件实现这一点 with open('hosts_access_log_00.tx
with open('hosts_access_log_00.txt', 'r') as input_file:
bytes = []
for lines in input_file.readlines():
words = lines.split()
bytes.append(words[-1])
bytes = list(int(byte) for byte in bytes)
usable_bytes = []
sum = 0
for usable in bytes:
if usable > 5000:
usable_bytes.append(usable)
sum += usable
print(usable_bytes, sum)
bytecount = '{}'.format(len(usable_bytes))
sum_state = '{}'.format(sum)
with open('bytes_hosts_access_log_00.txt', 'w') as output_file:
output_file.write(bytecount +'\n'+ sum_state)
你有14个文件,它们是连续命名的,对吗?我会使用一个简单的循环和f字符串
for filenumber in range(14):
filenumber = str(filenumber)
filenumber = '0' * (2 - len(filenumber)) + filenumber
with open(f'hosts_access_log_{filenumber}.txt', 'r') as input_file:
bytes = []
for lines in input_file.readlines():
words = lines.split()
bytes.append(words[-1])
bytes = list(int(byte) for byte in bytes)
usable_bytes = []
sum = 0
for usable in bytes:
if usable > 5000:
usable_bytes.append(usable)
sum += usable
print(usable_bytes, sum)
bytecount = '{}'.format(len(usable_bytes))
sum_state = '{}'.format(sum)
with open(f'bytes_hosts_access_log_{filenumber}.txt', 'w') as output_file:
output_file.write(bytecount +'\n'+ sum_state)
使用模块。像
os.listdir()
这样的函数非常有用…@MattDMo我对Python相当陌生。你介意帮我写代码吗当然,我会写一个简单的例子。从目录()2中获取感兴趣的文件列表。反复浏览该列表并做一些事情感谢您修复了输入错误,@MattDMoNo prob。像那样的事情突然向我袭来。