Python中drop函数删除指定行报错? python drop函数
- 在python中如何删除文件的某一行
- python中的delete函数是如何使用的,最好带例子,谢谢
- 用python的shutil.rmtree()最后一个文件删除不了,这是为什么?有什么解决方法
- Python中编辑了一段代码突然提示有一行错误,怎么修改了后继续接着上面的编辑啊
在python中如何删除文件的某一行
删除文件的某一行,可以跳过你要删除的行进行读写,如:
data = open(filename, 'rt').readlines()
with open(filename, 'wt') as handle:
handle.writelines(data[:tobedeleted])
handle.writelines(data[tobedeleted+1:])其中data是逐行读取文件,
handle.writelines进行读写,跳过tobedeleted行
python中的delete函数是如何使用的,最好带例子,谢谢
我要纠正推荐答案中的说法!
del并不是用来“删除引用指向的内存空间”,python中的del和c++中的delete是完全两个概念,不要误人子弟。。
一般来讲,del是用来删除变量的引用的,例如a = 1; del a,这里a是对1这个值的引用(python中所有的变量都可视作引用),而del a就是删除这一引用关系,也就是说,1不再被a这个变量引用了,同时a这个变量名也从变量表中剔除了。
如果还是不太清楚,我举这个例子你就明白了:
a = object()
b = a
del a
print b
print a # 该句会报a未定义的异常
这段代码中,a引用了一个新对象object(),而b=a使得b也引用了这个对象,a和b虽然是两个变量,但它们引用的是同一个对象,有点类似于c++中的两个指针指向同一个对象。
而后面del a仅仅只是把a这个变量对object()的引用删掉了,同时a的变量名也失效了,但并不表示object()这个对象被删除了,它还在,并且b还引用着它呢。从后面print b能正常输出就可以看出这一点。
python的内存释放采用的是引用计数机制,也就是当一个对象没有任何引用它的变量了,那么它就会自动被释放,无需人工干预。
此外,del对于不同的对象也会有不同的功能,这取决于对象本身对__del__系统方法的实现。例如一个列表a = [1,2,3],del a[0]表示将列表的首项删除,此时a就变成[2,3]了。如果是自定义的对象,那del的功能更是可以定义成你想要的任何样子,详情请参考python帮助中的__del__词条。
用python的shutil.rmtree()最后一个文件删除不了,这是为什么?有什么解决方法
shutil其实不是很健壮啊。经常出错。通常是最后一个目录不为空,或者是权限不对,或者是你当前运行的目录就在那个目录,总之被占用,被锁,没有权限,不为空都删除不了。
如果是在linux下,我们通常用os.system('rm -rf 目录名')
在windows也可以用
del /s/q 目录名
比较少用shutil, 也比较少用os.remove这样的函数。不过os.path.isfile这样的函数经常用
Python中编辑了一段代码突然提示有一行错误,怎么修改了后继续接着上面的编辑啊
按向上的箭头 一步步的来吧
也可以先用编辑器把所有代码输入完成后在运行