鱼C论坛

 找回密码
 立即注册
查看: 1708|回复: 16

python中write与writelines的区别

[复制链接]
发表于 2020-6-4 21:12:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def file_write(file_name):
    f = open(file_name,'w')
    print('请输入内容【单独输入\':w\'保存退出】:')

    while True:
        write_some = input()
        if write_some != ':w':
            f.write('%s\n' % write_some)
        else:
            break
    f.close()

file_name = input('请输入文件名:')
file_write(file_name)

请问,在这个程序中为什么:w在文件中会显示。但将write改为writelines就不会显示:w。感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 21:13:59 | 显示全部楼层
f.write(str) 参数是字符串,写入字符串里的内容

而 f.writelines(seq)参数是个可迭代对象,相当于for循环用f.write(str)写入:
for i in seq:
    f.write(i)

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
青出于蓝 + 1 + 1 这手速....

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:14:54 | 显示全部楼层
Twilight6 发表于 2020-6-4 21:13
f.write(str) 参数是字符串,写入字符串里的内容

而 f.writelines(seq)参数是个可迭代对象,相当于for循 ...

厉害啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:15:20 | 显示全部楼层

基本操作 习惯就好 坐下 坐下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 21:18:12 | 显示全部楼层
Twilight6 发表于 2020-6-4 21:13
f.write(str) 参数是字符串,写入字符串里的内容

而 f.writelines(seq)参数是个可迭代对象,相当于for循 ...

非常感谢您的讲解,原谅我有些愚笨。程序里不是已经用if语句进行判定了么?如果是:w不应该就去执行else语句了么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:19:18 | 显示全部楼层
zyha 发表于 2020-6-4 21:18
非常感谢您的讲解,原谅我有些愚笨。程序里不是已经用if语句进行判定了么?如果是:w不应该就去执行else语 ...

哦哦 骚等 我刚刚的回答只回答了你标题的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 21:19:54 | 显示全部楼层
Twilight6 发表于 2020-6-4 21:19
哦哦 骚等 我刚刚的回答只回答了你标题的问题

嗯嗯,好的。感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:20:36 | 显示全部楼层

怎么给别人评分呀?我为什么不能给别人评分呢

评分

参与人数 2荣誉 +3 鱼币 +3 收起 理由
xiaosi4081 + 2 + 2 给你升级
青出于蓝 + 1 + 1 给你点吧

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:21:06 | 显示全部楼层
zyha 发表于 2020-6-4 21:19
嗯嗯,好的。感谢!

两种都不会写入,可能是你不小心把冒号打错成了 中文的 或者 w 大写了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:25:37 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-4 21:20
怎么给别人评分呀?我为什么不能给别人评分呢

等级到了鱼友1,就可以洛。
可惜我积分不够快要降级给不了你啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:29:12 | 显示全部楼层
青出于蓝 发表于 2020-6-4 21:25
等级到了鱼友1,就可以洛。
可惜我积分不够快要降级给不了你啊

谢谢

评分

参与人数 2荣誉 +3 收起 理由
xiaosi4081 + 2 升级!
青出于蓝 + 1 没事,今天评分上线了快

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-4 21:32:45 | 显示全部楼层
Twilight6 发表于 2020-6-4 21:21
两种都不会写入,可能是你不小心把冒号打错成了 中文的 或者 w 大写了

哦哦,抱歉。是我自己疏忽了,麻烦你了。还想请问一下,那是不是表示用write写的,都可以用writelines替换呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 21:44:40 | 显示全部楼层
zyha 发表于 2020-6-4 21:32
哦哦,抱歉。是我自己疏忽了,麻烦你了。还想请问一下,那是不是表示用write写的,都可以用writelines替 ...

可以的 write 写入是字符串 字符串是可迭代对象 所以 writeline 参数就是可迭代对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 07:50:14 | 显示全部楼层
Twilight6 发表于 2020-6-4 21:44
可以的 write 写入是字符串 字符串是可迭代对象 所以 writeline 参数就是可迭代对象

我当初的理解是:
writeline就是写入一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 08:03:18 | 显示全部楼层
xiaosi4081 发表于 2020-6-5 07:50
我当初的理解是:
writeline就是写入一行

哈哈,是迭代写入的意思,不是写入一行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 08:05:36 | 显示全部楼层
xiaosi4081 发表于 2020-6-5 07:50
我当初的理解是:
writeline就是写入一行

太感谢了,我快100了,哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 08:06:35 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-6-5 08:05
太感谢了,我快100了,哈哈哈哈

没事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 22:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表