如何在Python操作退出时删除csv文件
我正在尝试制作一个从csv文件读取的Python脚本。在Python脚本退出或Python程序终止或终止时,我希望它删除它正在读取的csv文件。我该怎么做?这是我的密码如何在Python操作退出时删除csv文件,python,python-2.7,csv,numpy,numpy-ndarray,Python,Python 2.7,Csv,Numpy,Numpy Ndarray,我正在尝试制作一个从csv文件读取的Python脚本。在Python脚本退出或Python程序终止或终止时,我希望它删除它正在读取的csv文件。我该怎么做?这是我的密码 import numpy as np import csv count=1 while (count>0): csv=np.genfromtxt("csvdata.csv", delimiter=",", filling_values=np.nan, dtype=int, case_sensitive=True
import numpy as np
import csv
count=1
while (count>0):
csv=np.genfromtxt("csvdata.csv", delimiter=",", filling_values=np.nan, dtype=int, case_sensitive=True, deletechars='', replace_space=' ')
ref=np.genfromtxt("refdata.csv", delimiter=",", filling_values=np.nan, dtype=int, case_sensitive=True, deletechars='', replace_space=' ')
A=np.array(csv)
B=np.array(ref)
D = B - A[-1]
match= B[np.abs(D).sum(axis=1).argmin()]
print match
count = count + 1
我想在Python程序退出时删除“csvdata.csv”。但是代码必须在这个Python脚本中,这样就不必手动删除csv。(之所以如此,是因为csv是由除此之外的另一个Python脚本重复创建的)
一切帮助都将不胜感激。多谢各位
编辑:
我尝试使用操作系统删除该文件,但无法运行。我还尝试更改使用rm
指定的路径
import numpy as np
import csv
import os
count=1
while (count>0):
csv=np.genfromtxt("csvdata.csv", delimiter=",", filling_values=np.nan, dtype=int, case_sensitive=True, deletechars='', replace_space=' ')
ref=np.genfromtxt("refdata.csv", delimiter=",", filling_values=np.nan, dtype=int, case_sensitive=True, deletechars='', replace_space=' ')
A=np.array(csv)
B=np.array(ref)
D = B - A[-1]
match= B[np.abs(D).sum(axis=1).argmin()]
print match
count = count + 1
os.system('rm csvdata.csv')
使用
os
模块在python之外执行命令
# if csvdata.csv is in your current directory; do
import os
os.system("rm csvdata.csv") # linux/mac, definitely
# os.system("del csvdata.csv") # windows, probably
# .. else; use full path
或者从bash包装器脚本wrapper.sh
运行python脚本script.py
,并在其中删除它
#!/bin/bash
echo "running script..."
python script.py
echo "deleting file..."
rm csvdata.csv
echo "done!"
使用
os
模块在python之外执行命令
# if csvdata.csv is in your current directory; do
import os
os.system("rm csvdata.csv") # linux/mac, definitely
# os.system("del csvdata.csv") # windows, probably
# .. else; use full path
或者从bash包装器脚本wrapper.sh
运行python脚本script.py
,并在其中删除它
#!/bin/bash
echo "running script..."
python script.py
echo "deleting file..."
rm csvdata.csv
echo "done!"
我想你可以用:
os.remove('csvdata.csv')
如果csv文件位于脚本的同一目录中,或者需要提供文件的路径。搜索关于os.path.join()
以构建独立于系统的目录路径
您不应该使用os.system('rm csvdata.csv')
,因为这在windows系统上可能不起作用,因为它是一个Unix命令。但是,如果您使用删除功能,这将处理任何操作系统
证明你的代码真的停止了 我想你可以用:
os.remove('csvdata.csv')
如果csv文件位于脚本的同一目录中,或者需要提供文件的路径。搜索关于os.path.join()
以构建独立于系统的目录路径
您不应该使用os.system('rm csvdata.csv')
,因为这在windows系统上可能不起作用,因为它是一个Unix命令。但是,如果您使用删除功能,这将处理任何操作系统
证明你的代码真的停止了 你的循环不是一直在走吗?难道你不需要一个
中断?你的循环不是一直在循环吗?难道你不需要一个中断
?它只会在Python操作终止时删除csv吗?Python标准库有用于文件系统操作的函数。它们将比使用os.system()
更快、更可移植。一般来说,调用外部程序不应该是你首先要做的事情。另外,@Chris将subprocess.run()
视为一个更完整的os.system()
,至少在python3(编辑)中是完全正确的-在python2中使用subprocess.call()
。我不会谈论subprocess.run()
。这只是调用外部程序的另一种方式。它仍然会很慢而且不便于携带。另外,界面非常笨拙。我说的是os.unlink()
,pathlib
,等等。你能用初学者的角度解释一下吗,我不懂这些,我真的很抱歉,我是Python新手。此外,操作系统模块不工作,我尝试更改路径,但没有效果。它是否仅在Python操作终止时删除csv?Python标准库具有用于文件系统操作的函数。它们将比使用os.system()
更快、更可移植。一般来说,调用外部程序不应该是你首先要做的事情。另外,@Chris将subprocess.run()
视为一个更完整的os.system()
,至少在python3(编辑)中是完全正确的-在python2中使用subprocess.call()
。我不会谈论subprocess.run()
。这只是调用外部程序的另一种方式。它仍然会很慢而且不便于携带。另外,界面非常笨拙。我说的是os.unlink()
,pathlib
,等等。你能用初学者的角度解释一下吗,我不懂这些,我真的很抱歉,我是Python新手。另外,操作系统模块不起作用,我试图改变路径,但没有效果。在Python3中,有一个名为pathlib的库也可以处理这个问题。检查此链接:这种方法不会调用任何命令到终端。对于Python3,有一个名为pathlib的库也可以处理此问题。检查此链接:此方法不会向终端调用任何命令。