1.输入一个数n,生成n个1到100之间的随机整数,写入文件中。(每个数一行)
import random #导入随机函数
n=int(input('请问要输入几个随机数?'))
a=[random.randint(1,101)for i in range(n)]
a=list(map(str,a))
f=open("E:\\python数据文件\\task07测试.txt",'a+')
for i in a:
f.write(i)
f.write("\n") #每个数字一行
f.close()
2.从文件中读取数据,使用归并排序或快速排序进行排序,然后写入另外一个文件中
我选择快速排序,接下来编写快速排序代码板块:
def partition(arr, low, high):
i = (low - 1) # 最小元素索引
pivot = arr[high]
for j in range(low, high):
# 当前元素小于或等于 pivot
if arr[j] <= pivot:
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return (i + 1)
# arr[] --> 排序数组
# low --> 起始索引
# high --> 结束索引
# 快速排序函数
def quickSort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quickSort(arr, low, pi - 1)
quickSort(arr, pi + 1, high)
quickSort(arr, 0, n - 1)
接下来读取文件中的数据,并调用快速排序函数,代码如下:
f=open("E:\\python数据文件\\task07测试.txt")
#arr一行为一个数据,不读取换行符
arr=list(f.read().splitlines())
#因为文件读取只能是字符串
#将arr字符列表转化为整型数字列表
arr=[int(x) for x in arr]
n = len(arr)
quickSort(arr, 0, n - 1)
最后一步,将排序后的文件写入新文件,代码如下:
#将数据写入新文件
arr=list(map(str,arr))
f=open("E:\\python数据文件\\task07测试1.txt",'a+')
for i in arr:
f.write(i)
f.write("\n")
f.close()
千万不要忘记f.close()哟!
最后找到新创建的文件检查一遍。
,任务完成。
客官,点个赞叭.....qwq ┭┮﹏┭┮