在Python中选择所有文件类型的另一种方法
我创建了一个在VisualStudio代码中运行得非常好的脚本,但现在我正在尝试将该脚本自动化,这被证明有点棘手。为了实现自动化,我已将该文件转换为unix可执行文件,但当我单击脚本时,我不断收到一个错误。纸条中有一部分可以选择所有的.csv文件类型并像这样删除它们在Python中选择所有文件类型的另一种方法,python,csv,visual-studio-code,executable,glob,Python,Csv,Visual Studio Code,Executable,Glob,我创建了一个在VisualStudio代码中运行得非常好的脚本,但现在我正在尝试将该脚本自动化,这被证明有点棘手。为了实现自动化,我已将该文件转换为unix可执行文件,但当我单击脚本时,我不断收到一个错误。纸条中有一部分可以选择所有的.csv文件类型并像这样删除它们 filestodelete = glob.glob('*.csv')[0] os.remove('/Users/emmanuel/Documents/Selenium/{}'.format(filestodelete)) 问题是当
filestodelete = glob.glob('*.csv')[0]
os.remove('/Users/emmanuel/Documents/Selenium/{}'.format(filestodelete))
问题是当终端到达这段代码时,我收到了这个错误
Traceback (most recent call last):
File "/Users/emmanuel/Documents/Selenium/OptionsBotCode.py", line 32, in <module>
filestodelete = glob.glob('*.csv')[0]
IndexError: list index out of range
在它读到这个之前
os.remove('/Users/emmanuel/Documents/Selenium/{}'.format(filestodelete))
我试图通过将目标目录放在*.csv之前来指定位置,如下所示
filestodelete = glob.glob('/Users/emmanuel/Documents/Selenium/*.csv')[0]
os.remove('/Users/emmanuel/Documents/Selenium/{}'.format(filestodelete))
但我一直收到这个错误信息
Traceback (most recent call last):
File "/Users/emmanuel/Documents/Selenium/OptionsBotCode.py", line 33, in <module>
os.remove('/Users/emmanuel/Documents/Selenium/{}'.format(oldfilename))
FileNotFoundError: [Errno 2] No such file or directory: '/Users/emmanuel/Documents/Selenium//Users/emmanuel/Documents/Selenium/CC.csv'
回溯(最近一次呼叫最后一次):
文件“/Users/emmanuel/Documents/Selenium/OptionsBotCode.py”,第33行,在
删除('/Users/emmanuel/Documents/Selenium/{}.format(oldfilename))
FileNotFoundError:[Errno 2]没有这样的文件或目录:'/Users/emmanuel/Documents/Selenium//Users/emmanuel/Documents/Selenium/CC.csv'
此外,我不认为这是一种方法,我只是想尝试一下
有人知道解决这个问题的方法吗?也许我可以选择并操作目录中的所有.csv文件,而不必使用glob.glob和混淆我可怜的计算机
谢谢打印(glob.glob('*.csv'))
将显示返回列表为空时出现索引错误filestodelite=glob.glob('*.csv')[0]
从返回的文件列表中选择一个文件,但如果没有文件,则索引0无效
改为使用以下命令,该命令将在返回列表中的每个文件上运行,并且不会运行操作系统。如果列表为空,请删除:
for file in glob.glob('*.csv'):
os.remove(file)
如果没有路径,上述文件将仅查找当前目录中的CSV文件。
您也可以将目录放在前面:
for file in glob.glob('/Users/emmanuel/Documents/Selenium/*.csv'):
os.remove(file)
print(glob.glob('*.csv'))
将显示返回的列表为空时出现索引错误filestodelite=glob.glob('*.csv')[0]
从返回的文件列表中选择一个文件,但如果没有文件,则索引0无效
改为使用以下命令,该命令将在返回列表中的每个文件上运行,并且不会运行操作系统。如果列表为空,请删除:
for file in glob.glob('*.csv'):
os.remove(file)
如果没有路径,上述文件将仅查找当前目录中的CSV文件。
您也可以将目录放在前面:
for file in glob.glob('/Users/emmanuel/Documents/Selenium/*.csv'):
os.remove(file)
这几乎是完美的。非常感谢@MarkTolonen我现在唯一的问题是,运行新代码后导入目录的任何后续.csv文件都会被删除。有没有办法在几行代码后停止删除过程?要将内容放到上下文中,在删除该目录中的所有.csv文件后,我需要导入一个新的.csv文件,以便编辑和发送电子邮件。代码的这些部分已经编写好并在VSC中工作。他们无法使用EXEC文件工作,因为他们在被操作和发送电子邮件之前被删除。我希望@MarkThis几乎完美。非常感谢@MarkTolonen我现在唯一的问题是,运行新代码后导入目录的任何后续.csv文件都会被删除。有没有办法在几行代码后停止删除过程?要将内容放到上下文中,在删除该目录中的所有.csv文件后,我需要导入一个新的.csv文件,以便编辑和发送电子邮件。代码的这些部分已经编写好并在VSC中工作。他们无法使用EXEC文件工作,因为他们在被操作和发送电子邮件之前被删除。我希望@Mark这样做有意义