文件练习题
随机生成20个10-100区间范围内的整数,从小到大排序,然后写入文件,接着从文件中读取出来 文件内容,最后反序,再追加到文件的下一行。
import random
list_num = [random.randint(1, 100) for i in range(20)]
list_num.sort()
li = [str(i) for i in list_num]
# txt = ','.join(list(map(str, list_num))) txt = ','.join(li)
with open('num1.txt', 'w', encoding='utf-8') as f:
f.write(txt)
with open('num1.txt', 'r+', encoding='utf-8') as f:
list_num2 = f.read().split(',')
list_num2.reverse()
li2 = [str(j) for j in list_num2]
# txt2 = ','.join(list(map(str, list_num2)))
txt2 = ','.join(li2)
f.write('\n')
f.write(txt2)
打开一个英文文本文件,编写程序读取其内容,并把其中的大写字母变成小写字母,小写字母变成 大写字母。
f = open(r'd:\1.txt','r')
s = f.readlines()
f.close()
r = [i.swapcase() for i in s]
f = open(r'd:\2.txt','w')
f.writelines(r)
f.close()
读取一个文件,显示除了以#号开头的行以外的所有行。
import os
#1、打开文件
f = open("install-sh","r")
#2、把文章全部读取,以列表形式存储。
res = f.readlines()
f.close()
#3、循环整个列表,去除以空格开头的行的空格,然后去除以#号开头的行的#号
for i in res:
i.strip(" ")
if i[0] == "#":
continue
else:
print(i)
批量更改指定文件夹下的所有文件的名称。
首先,生成文件:
import os
folder_name = input("请输入要生成文件的文件夹: ")
os.chdir(folder_name)
n = int(input('请输入文件数量:'))
for i in range(n):
name = "test" + str(i) + '.txt'
f = open(name, 'w')
f.write('')
f.close()
批量命名
# 方 法 1
import os
# (1) 获取要命名的文件夹名字
folder_name = input("请输入要重命名的文件夹: ")
# (2) 获取指定文件夹中 所有文件的名字
files_name = os.listdir(folder_name) # 不加报错
os.chdir(folder_name)
# (3) 重命名
for name in files_name:
print(name)
os.rename(name, "[杭州]-"+name)
# 方 法 2
import os
# (1) 获取要命名的文件夹名字
folder_name = input("请输入要重命名的文件夹: ")
# (2) 获取指定文件夹中 所有文件的名字
files_name = os.listdir(folder_name) # 不加报错
os.chdir(folder_name)
# (3) 重命名
for name in files_name:
print(name)
position = name.rfind(".")
new_name = name[:position] + "-[杭州]" + name[position:]
os.rename(name, new_name)