已知一文本文件中存放了若干逗号分隔的整数,将所有数降序排序后输出并写到一新文件中。
with open('test.txt','r') as f:
lst = f.read().split(',')
lst = [i.strip() for i in lst]
lst.sort(reverse=True)
res = ','.join(lst)
with open('test2.txt','w') as f:
f.write(res)
# 字符串转整数
def strToInt( strV):
v = 0
try:
v = int(strV)
return v
except:
return None
# 读文件
srcStr = ""
with open('data/src.txt','r') as f:
srcStr = f.read()
# 解析出数组并转成整数
strArr = srcStr.split(',')
intArr = []
for v in strArr:
intV = strToInt( v)
# 剔除无效的数字
if intV != None:
intArr.append( intV)
# 排序
intArr.sort()
#
retStr = ""
for i in range( len(intArr)):
if i == 0:
retStr = retStr + str(intArr[i])
else:
retStr = retStr + "," + str(intArr[i])
with open('data/dst.txt','w') as f:
f.write(retStr)
import os
old_file_path = os.path.join(os.path.dirname(__file__), '原文件名.txt')
with open(old_file_path, 'r') as f:
data = sorted(list(map(int, f.read().split(','))))
new_file_path = os.path.join(os.path.dirname(__file__), '新文件名.txt')
with open(new_file_path, 'w') as f:
f.write(','.join(list(map(str, data))))
#判断是否是有效的整数数字,是则返回数字,不是则过滤
def isNum(item) -> int:
if item:
item = str(item)
if item.isnumeric():
return int(item)
elif item.startswith("-") and item.replace("-","").isnumeric():
return int(item)
else:
pass
# 读文件
srcStr = ""
with open('data/data.txt', 'r') as f:
srcList = f.read().split(",")
resList = []
for item in srcList:
i = isNum(item)
if i:
resList.append(i)
# 排序
resList.sort()
#列表元素再转为str
resList = [str(i) for i in resList]
with open('data/dst.txt', 'w') as f:
f.write(",".join(resList))
逗号分隔的之间用csv文件另存为就好了