下面是详细的Python批量处理txt文件的实例代码攻略:
1. 准备工作
在进行Python批量处理txt文件之前,我们需要在电脑上安装好Python,并掌握基本的Python语法。此外,我们还需要创建一个文件夹,用来存放需要处理的txt文件。
2. 确定处理方式
在进行Python批量处理txt文件时,我们需要先确定需要对txt文件做什么样的处理,例如计算平均数、打印每行内容等。
3. 编写批量处理代码
3.1 读取文件夹中的所有文件
使用os
模块中的listdir()
函数可以读取指定文件夹中的所有文件:
import os
path = "C:/example"
files = os.listdir(path)
3.2 遍历文件并处理
接下来,我们需要遍历上一步读取到的文件列表,并对每个文件进行指定的处理操作。例如,我们可以计算每个文件中所有数字的平均数:
import os
path = "C:/example"
files = os.listdir(path)
for filename in files:
if filename.endswith(".txt"):
with open(os.path.join(path, filename)) as f:
lines = f.readlines()
numbers = []
for line in lines:
line = line.strip()
if line.isnumeric():
numbers.append(int(line))
if numbers:
avg = sum(numbers) / len(numbers)
print(f"File {filename} average: {avg}")
上述代码中,使用endwith()
函数筛选出txt文件,使用with open() as f
语句打开文件并读取所有行,使用循环遍历每一行字符串并判断是否为数字,如果是则添加到numbers
列表中。最后,对numbers
中的所有数字求平均值并打印出来。
3.3 将处理结果保存到文件
如果我们需要将处理结果保存到文件中,则可以在上述代码中添加文件写入的操作:
import os
path = "C:/example"
files = os.listdir(path)
with open("result.txt", "w") as result_file:
for filename in files:
if filename.endswith(".txt"):
with open(os.path.join(path, filename)) as f:
lines = f.readlines()
numbers = []
for line in lines:
line = line.strip()
if line.isnumeric():
numbers.append(int(line))
if numbers:
avg = sum(numbers) / len(numbers)
result_file.write(f"File {filename} average: {avg}\n")
上述代码在最开始打开一个名为result.txt
的文件并以写入模式打开,然后通过循环对每个符合条件的txt文件进行处理,并将结果写入到result.txt
文件中。
4. 示例说明
示例1:批量计算多个txt文件中所有数字的平均值
例如我们有以下三个txt文件:
file1.txt
1
2
3
4
5
file2.txt
10
12
14
file3.txt
2
3
5
9
我们可以使用上述代码对这三个文件中的数字求平均值,代码运行结果如下:
File file1.txt average: 3.0
File file2.txt average: 12.0
File file3.txt average: 4.75
示例2:将多个txt文件中的所有数字按照从小到大的顺序排列,并保存到新的文件中
我们可以对示例1中的代码进行修改,调用Python内置的sort()
函数对每个文件中的数字按照从小到大的顺序进行排序,并将排序后的结果保存到新文件中:
import os
path = "C:/example"
files = os.listdir(path)
with open("result.txt", "w") as result_file:
for filename in files:
if filename.endswith(".txt"):
with open(os.path.join(path, filename)) as f:
lines = f.readlines()
numbers = []
for line in lines:
line = line.strip()
if line.isnumeric():
numbers.append(int(line))
if numbers:
numbers.sort()
result_file.write(f"File {filename} sorted numbers: {numbers}\n")
上述代码在对每个文件中的数字列表进行排序之后,使用字符串format()
方法将排序后的结果转换成字符串,并写入到result.txt
文件中。运行代码后,我们可以得到以下结果:
File file1.txt sorted numbers: [1, 2, 3, 4, 5]
File file2.txt sorted numbers: [10, 12, 14]
File file3.txt sorted numbers: [2, 3, 5, 9]
这里的结果中,我们在score前面添加了"File filename sorted numbers: "的前缀用来标识是哪个文件的排序结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python批量处理txt文件的实例代码 - Python技术站