python文件创建文件,写入随机列表,读取文件数据,将数据快速排序,并创建新文件写入。

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()

输入6,打开文件结果如下: python文件创建文件,写入随机列表,读取文件数据,将数据快速排序,并创建新文件写入。_第1张图片

 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()哟!

最后找到新创建的文件检查一遍。

python文件创建文件,写入随机列表,读取文件数据,将数据快速排序,并创建新文件写入。_第2张图片

,任务完成。 

客官,点个赞叭.....qwq           ┭┮﹏┭┮

你可能感兴趣的:(python)