Crossin的编程教室

标题: 【python 32课】写文件 课后作业的问题 [打印本页]

作者: felixfunky    时间: 2017-2-1 08:23
标题: 【python 32课】写文件 课后作业的问题
本帖最后由 felixfunky 于 2017-2-1 08:32 编辑

我有一个data.txt 内容为:
hahaha!
im in a file!
so cool!

还有一个output.txt 内容为空

现在想把data.txt 读取一遍+读取第一行,存入output.txt:储存结果为

hahaha!
im in a file!
so cool!
hahaha!

我写的以下代码:
f=file('data.txt')
read=f.read()
readline=f.readline()

i=file('output.txt','a')
i.write(read)
i.write(readline)

j=file('output.txt')
k=j.read()
print k

f.close()
j.close()


请问一下代码错误在哪里?
每次输出都不是想要的结果,而且每次输出结果有时还不一样,有时改变代码再运行的时候,输出还会滞后一部,运行前一次的代码。
顺便求一下32课课后作业的正确答案.........

感谢crossin先生。



作者: crossin先生    时间: 2017-2-1 11:23
你这个代码太乱,不好评价。看得出你对文件读写还不是很了解,建议再找相关资料多看看

readline不会包含read的第一行,所以你要输出,得写入两遍read。
(用 read readline 这种名称命名变量本身也不好)
最后那段read毫无意义。不应该在一个文件还没有关闭前,就再次打开它,对其进行读写。
作者: hpuhuang    时间: 2017-2-1 20:26
我写的很简单:

f = file('data.txt')   # 打开data.txt文件
read = f.read()
print '读取的数据为:' + read    # 检查是否读取出来
read = f.close()
l = file('output.txt', 'w')    # 建立output.txt文件,用以存储写入的数据
d = l.write(read)
print d
l.close()

我也是下午刚写的,我运行没有错误,这段在网吧打的,你试试。。

第二题是:
print '请输入数据:'
context = raw_input()    # 用这个输入函数就是图个方便,但容易出错
f = file('output.txt', 'w')
f.write(context)
f.close()



作者: hpuhuang    时间: 2017-2-1 20:28
这个论坛是老师你自己建的吗?这是用php写的吗?访问速度好快啊。真希望有一天我能写一个自己的博客。我自己设计界面,写一些只给我看的文章记录。。。
作者: felixfunky    时间: 2017-2-2 05:59
hpuhuang 发表于 2017-2-1 20:26
我写的很简单:

f = file('data.txt')   # 打开data.txt文件

主要是 我的程序里 想用read  data.txt的文件存入output里 以及多用readline存data.txt里的第一行。但是不知道错误在哪里。看来并不能直接
f.read
f.readline
放在一起用
作者: crossin先生    时间: 2017-2-2 10:39
felixfunky 发表于 2017-2-2 05:59
主要是 我的程序里 想用read  data.txt的文件存入output里 以及多用readline存data.txt里的第一行。但是 ...

你了解一下读写文件时候,有个读写位置的概念,以及 seek() 函数的作用。

并不是你read一下,再readline一下,就如你想的那样。你可以自己在控制台测试下你这样read出来是什么值。

如果只是要完成你要的效果,你可以把每一行都读出来保存在变量里,然后自己再处理成你要的结果,最后再保存。
作者: crossin先生    时间: 2017-2-2 10:40
hpuhuang 发表于 2017-2-1 20:28
这个论坛是老师你自己建的吗?这是用php写的吗?访问速度好快啊。真希望有一天我能写一个自己的博客。我自 ...

论坛是用的 discuz 工具。类似的还有 wordpress、hexo。你看建站区里面有一些介绍文章的
作者: felixfunky    时间: 2017-2-2 11:23
crossin先生 发表于 2017-2-2 10:40
论坛是用的 discuz 工具。类似的还有 wordpress、hexo。你看建站区里面有一些介绍文章的 ...

好的,多谢老师!
作者: 西门子不吹雪    时间: 2017-10-31 20:46
f=file('test.txt')
data=f.readline()
data1=f.read()
print data
print data1
f.close()

验证有读写位置这一说法
作者: crossin先生    时间: 2017-11-1 16:40
西门子不吹雪 发表于 2017-10-31 20:46
f=file('test.txt')
data=f.readline()
data1=f.read()

f.seek(0) 回到开头
作者: 西门子不吹雪    时间: 2017-11-5 21:57
谢谢先生指导。




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5