读取txt里的图片名字,把图片随机分配到2个文件,Python代码示例
时间: 2023-02-14 20:17:26 浏览: 166
```python
import random
# 读取txt里的图片名字
with open('image_list.txt', 'r') as f:
image_list = f.readlines()
# 随机分配图片到2个文件
random.shuffle(image_list)
half = len(image_list) // 2
with open('group1.txt', 'w') as f1, open('group2.txt', 'w') as f2:
f1.write('\n'.join(image_list[:half]))
f2.write('\n'.join(image_list[half:]))
```
这段代码将会读取名为"image_list.txt"的文件,里面存放着图片的文件名,每一行都是一个图片的文件名。然后会打乱这些图片的顺序,并且把他们平均分成两组,分别写入"group1.txt"和"group2.txt"文件里。
相关问题
python 读取csv文件中心点算法代码
以下是使用Python读取CSV文件并实现K中心点算法的代码示例:
```python
import csv
import random
import math
# 读取CSV文件
def read_csv(filename):
data = []
with open(filename, 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
data.append([float(x) for x in row])
return data
# 计算两个点之间的欧几里得距离
def distance(p1, p2):
return math.sqrt(sum([(p1[i]-p2[i])**2 for i in range(len(p1))]))
# 找到最远的点作为新的聚类中心
def find_farthest_point(data, centers):
max_distance = 0
farthest_point = None
for point in data:
if point not in centers:
min_distance = min([distance(point, center) for center in centers])
if min_distance > max_distance:
max_distance = min_distance
farthest_point = point
return farthest_point
# K中心点算法
def k_center(data, k):
# 随机选择一个点作为第一个聚类中心
centers = [random.choice(data)]
while len(centers) < k:
# 找到最远的点作为新的聚类中心
farthest_point = find_farthest_point(data, centers)
centers.append(farthest_point)
# 分配数据点到聚类中心
clusters = [[] for i in range(k)]
for point in data:
distances = [distance(point, center) for center in centers]
cluster_index = distances.index(min(distances))
clusters[cluster_index].append(point)
return centers, clusters
# 测试代码
if __name__ == '__main__':
data = read_csv('data.csv')
centers, clusters = k_center(data, 3)
print('聚类中心:', centers)
for i, cluster in enumerate(clusters):
print('聚类', i+1, ':', cluster)
```
在这个示例中,我们首先使用`read_csv`函数读取CSV文件中的数据。然后,我们定义了`distance`函数来计算两个点之间的欧几里得距离,`find_farthest_point`函数来找到距离聚类中心最远的点,以及`k_center`函数来实现K中心点算法。最后,我们使用`centers`和`clusters`变量来存储聚类中心和聚类结果,并输出它们。
请注意,这只是一个简单的示例,实际应用中可能需要对算法进行优化。例如,可以使用KD树等数据结构来加速计算距离。
用python写一个读取txt文档中的人名并对人名进行座位分配
好的,这是一个很有趣的问题,我可以为您提供一种解决方案。我们可以从txt文件中读取每一行,然后使用正则表达式匹配出其中的人名,将其存储到一个列表中。接着,我们可以使用随机函数对这些人名进行乱序,最后将其按照一定规则分配座位即可。下面是简单的Python代码示例:
```python
import re
import random
# 定义正则表达式,匹配人名
pattern = re.compile(r'[^\W\d](?:[\w-]*[^\W\d])?')
# 定义读取txt文件函数
def read_txt_file(filename):
with open(filename, 'r') as f:
lines = f.readlines()
return lines
# 读取txt文件并提取人名
filename = 'names.txt'
lines = read_txt_file(filename)
names = []
for line in lines:
names += pattern.findall(line)
# 随机分配座位
random.shuffle(names)
num_names = len(names)
num_seats = 10
for i in range(num_names):
seat = i % num_seats + 1
print(f'{names[i]}: seat {seat}')
```
当然,这只是一个简单的示例,实际应用中可能需要更复杂的座位分配规则。希望我的回答能够帮到您!
阅读全文