zyha 发表于 2020-6-4 21:12:12

python中write与writelines的区别

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。感谢!

Twilight6 发表于 2020-6-4 21:13:59

f.write(str) 参数是字符串,写入字符串里的内容

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

青出于蓝 发表于 2020-6-4 21:14:54

Twilight6 发表于 2020-6-4 21:13
f.write(str) 参数是字符串,写入字符串里的内容

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

厉害啊

Twilight6 发表于 2020-6-4 21:15:20

青出于蓝 发表于 2020-6-4 21:14
厉害啊

基本操作 习惯就好 坐下 坐下

zyha 发表于 2020-6-4 21:18:12

Twilight6 发表于 2020-6-4 21:13
f.write(str) 参数是字符串,写入字符串里的内容

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

非常感谢您的讲解,原谅我有些愚笨。程序里不是已经用if语句进行判定了么?如果是:w不应该就去执行else语句了么?

Twilight6 发表于 2020-6-4 21:19:18

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

哦哦 骚等 我刚刚的回答只回答了你标题的问题

zyha 发表于 2020-6-4 21:19:54

Twilight6 发表于 2020-6-4 21:19
哦哦 骚等 我刚刚的回答只回答了你标题的问题

嗯嗯,好的。感谢!

小甲鱼的铁粉 发表于 2020-6-4 21:20:36

青出于蓝 发表于 2020-6-4 21:14
厉害啊

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

Twilight6 发表于 2020-6-4 21:21:06

zyha 发表于 2020-6-4 21:19
嗯嗯,好的。感谢!

两种都不会写入,可能是你不小心把冒号打错成了 中文的 或者 w 大写了

青出于蓝 发表于 2020-6-4 21:25:37

小甲鱼的铁粉 发表于 2020-6-4 21:20
怎么给别人评分呀?我为什么不能给别人评分呢

等级到了鱼友1,就可以洛。
可惜我积分不够快要降级给不了你啊

小甲鱼的铁粉 发表于 2020-6-4 21:29:12

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

谢谢{:10_250:}

zyha 发表于 2020-6-4 21:32:45

Twilight6 发表于 2020-6-4 21:21
两种都不会写入,可能是你不小心把冒号打错成了 中文的 或者 w 大写了

哦哦,抱歉。是我自己疏忽了,麻烦你了。还想请问一下,那是不是表示用write写的,都可以用writelines替换呢?

Twilight6 发表于 2020-6-4 21:44:40

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

可以的 write 写入是字符串 字符串是可迭代对象 所以 writeline 参数就是可迭代对象

xiaosi4081 发表于 2020-6-5 07:50:14

Twilight6 发表于 2020-6-4 21:44
可以的 write 写入是字符串 字符串是可迭代对象 所以 writeline 参数就是可迭代对象

我当初的理解是:
writeline就是写入一行

Twilight6 发表于 2020-6-5 08:03:18

xiaosi4081 发表于 2020-6-5 07:50
我当初的理解是:
writeline就是写入一行

哈哈,是迭代写入的意思,不是写入一行

小甲鱼的铁粉 发表于 2020-6-5 08:05:36

xiaosi4081 发表于 2020-6-5 07:50
我当初的理解是:
writeline就是写入一行

太感谢了{:10_281:},我快100了,哈哈哈哈

xiaosi4081 发表于 2020-6-5 08:06:35

小甲鱼的铁粉 发表于 2020-6-5 08:05
太感谢了,我快100了,哈哈哈哈

没事{:10_297:}
页: [1]
查看完整版本: python中write与writelines的区别