Python FileNotFound迭代目录下的文件时出错 导入操作系统 作为pd进口熊猫 FILES=os.listdir(“/CADEC/original”) 对于文件中的文件: 如果文件.startswith(“ARTHROTEC”): 打印(文件)
我想从目录下以某些字母开头的所有文件中提取数据。如上所示,当我遍历目录并打印每个适合的文件名时,我会得到一列文件名(字符串)。同时,Python FileNotFound迭代目录下的文件时出错 导入操作系统 作为pd进口熊猫 FILES=os.listdir(“/CADEC/original”) 对于文件中的文件: 如果文件.startswith(“ARTHROTEC”): 打印(文件),python,pandas,directory,pathlib,Python,Pandas,Directory,Pathlib,我想从目录下以某些字母开头的所有文件中提取数据。如上所示,当我遍历目录并打印每个适合的文件名时,我会得到一列文件名(字符串)。同时,data=pd.read\u csv(“/CADEC/original/ARTHROTEC.1.ann”,sep='\t',header=None)。但是,运行以下代码只会返回错误。为什么找不到该文件?我该怎么做才能解决这个问题 对于文件中的文件: 如果文件.startswith(“ARTHROTEC”): data=pd.read\u csv(文件,sep='\t
data=pd.read\u csv(“/CADEC/original/ARTHROTEC.1.ann”,sep='\t',header=None)
。但是,运行以下代码只会返回错误。为什么找不到该文件?我该怎么做才能解决这个问题
对于文件中的文件:
如果文件.startswith(“ARTHROTEC”):
data=pd.read\u csv(文件,sep='\t',header=None)
- 仅返回目录中的文件名,不返回路径,
需要文件的路径(或相对路径),除非文件与代码位于同一目录中pandas
- 您最好学习这个模块,它使用方法而不是字符串将路径视为对象。
- -生成与模式匹配的对象的
生成器
- -生成与模式匹配的对象的
可能需要一些时间才能习惯,但所有提取路径特定部分的方法(如文件扩展名或文件名)都是值得的pathlib
将熊猫作为pd导入
从pathlib导入路径
#创建path对象并使用.glob获取文件
files=Path('/CADEC/original').glob('ARTHROTEC*.ann'))
#创建数据帧列表,每个文件1个数据帧
df_list=[pd.read_csv(文件,sep='\t',header=None)用于文件中的文件]
#或者,创建一个以文件名为键的数据帧dict
df_dict={file.stem:pd.read_csv(file,sep='\t',header=None)用于文件中的文件}
例子
win32上的Python 3.8.5(默认值,2020年9月3日21:29:08)[MSC v.1916 64位(AMD64)]
导入操作系统
…:从pathlib导入路径
…:os.listdir('e:/PythonProjects/stack\u overflow/t-files'))
出[2]:
['.ipynb_检查点',
“03900169.txt”,
“142233.0.txt”,
“153431.2.txt”,
“17371271.txt”,
“274301.5.txt”,
“42010316.txt”,
“429237.7.txt”,
“570651.4.txt”,
“65500027.txt”,
“688599.3.txt”,
“740103.5.txt”,
“742537.6.txt”,
“8750504.txt”,
“90950222.txt”,
“t1.txt”,
“t2.txt”,
't3.txt']
列表(路径('e:/PythonProjects/stack_overflow/t-files').glob('*'))
出[3]:
[WindowsPath('e:/PythonProjects/stack\u overflow/t-files/.ipynb\u checkpoints'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/03900169.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/142233.0.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/153431.2.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/17371271.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/274301.5.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/42010316.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/429237.7.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/570651.4.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/65500027.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/688599.3.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/740103.5.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/742537.6.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/8750504.txt'),
WindowsPath('e:/PythonProjects/stack_overflow/t-files/90950222.txt'),
WindowsPath('e:/PythonProjects/stack\u overflow/t-files/t1.txt'),
WindowsPath('e:/PythonProjects/stack\u overflow/t-files/t2.txt'),
WindowsPath('e:/PythonProjects/stack\u overflow/t-files/t3.txt')]
哇,这太完美了!谢谢大家!@不客气。
ARTHROTEC.1.ann
ARTHROTEC.10.ann
ARTHROTEC.100.ann
ARTHROTEC.101.ann
ARTHROTEC.102.ann
ARTHROTEC.103.ann
ARTHROTEC.104.ann
ARTHROTEC.105.ann
ARTHROTEC.106.ann
ARTHROTEC.107.ann
ARTHROTEC.108.ann
ARTHROTEC.109.ann
ARTHROTEC.11.ann
ARTHROTEC.110.ann
ARTHROTEC.111.ann
ARTHROTEC.112.ann
ARTHROTEC.113.ann
ARTHROTEC.114.ann
ARTHROTEC.115.ann
...
FileNotFoundError: [Errno 2] File ARTHROTEC.1.ann does not exist: 'ARTHROTEC.1.ann'