20181221hw
- 读入用户输入的文件的路径和一个字符串和行数,将文件中的第n行行首插入用户输入的字符串
def fun():
fpath = input('请输入一个文件路径:')
str = input('请输入一个字符串:')
n = int(input('请输入要插入的行数:'))
l = [] # 定义一个空列表
with open(fpath,'r') as f:
for i in f:
l.append(i) # 把打开的文件存入列表中
#print(l)
l.insert(n-1,str) # 要在第几行插入字符串
s = ''.join(l)
with open(fpath,'w+') as f:
f.write(s) # 把新的内容写入文件
try:
fun()
except Exception as e:
print('输入内容与提示不符!{}'.format(e))
3.下面只有一种方式不能打开文件,请尝试,并说明原因?
01. f = open('E:/test.txt', 'w')
02. f = open('E:\test.txt', 'w') # 必须双 \\ 或者前面加 r ,否则Python会将反斜杠作为转义符
03. f = open('E://test.txt', 'w')
04. f = open('E:\\test.txt', 'w')
4.打开一个文件使用open()函数的时候,通过设置文件的打开方式,决定打开的文件具有哪些性质,请总结都有哪些方式,并说明区别
'r'->只读
'w'->只写,文件已存在则清空,不存在则创建。
'a'->追加,写到文件末尾
'b'->二进制模式,比如打开图像、音频、word文件。
'+'->更新(可读可写)
'r+'不清空,不创建
默认是只读方式打开文件:open(file, mode=’r’)
- 如何将一个文件对象f中的数据存放到列表中
# 第一种方式 (遍历用append存入)
with open('../text','r') as f:
l = []
for i in f:
l.append(i)
print(l)
# 第二种方式(用list函数)
with open('../text','r') as f:
l = list(f)
print(l)
- 如果得到文件对象f的每一行数据,尝试使用多种方法
with open('../text','r') as f:
n = f.readlines()
#print(n[1])
l = []
for i in range(len(n)):
l.append(n[i])
print(l)