用with open(path,'rb')去读取文件夹中的文件,显示在该文件夹下找不到该文件,但是该文件是的的确确存在的。
因为用os.listdir()去读取该文件夹的时候是有该文件的
用with读取该文件:with open(r'//Users//chendingyu//Desktop//20220411//510880.dat','rb') as fo:
用os.listdir()读取文件夹:filepath = r'//Users//chendingyu//Desktop//20220411//'
path = os.listdir(filepath)
结果用with open就显示:No such file or directory: '510880.dat'
但是用os.listdir的结果中的确有这个dat文件。
不知道其中的缘由,初入编程的我请求各位的指导。
##这样呢
with open('/Users/chendingyu/Desktop/20220411/510880.dat','rb') as fo: #读入
data=fo.read()
with open(r'C://Users//chendingyu//Desktop//20220411//510880.dat','rb') as fo:
换成这样试试
是不是你斜杠用多了啊,我记得正斜杠用一个就行吧,反斜杠才用两个
是不是没有访问权限呢?一般这个报错的话就是文件不存在或者没有访问权限
写这些东西的时候,你在当前路径下获取路径建议不要手动输入,用getcwd来获取路径再拼接比较好,这样的话泛化性比较高,读取的文件放到当前路径下面,用相对路径,这样简单不容易出错
就是路径问题,写成C:\User\....试试
使用下面的代码实现吧
目录结构:
import os
for root, dirs, files in os.walk(r"/Users/fei.yang4/PycharmProjects/firstProject/tedebezium/prod/connectorConfig"):
print(f"根目录:{root}")
print(f"根目录下文件夹,会遍历根目录下所有文件夹:{dirs}")
print(f"会打印出所有目录下的files:{files}")
#要查找的文件名
filename = "mysql-thesis_prod-dd_sdi_ods_uds_thesis_prod_1h-connector.json"
for file in files:
if(file==filename):
print("------------------找到文件了-------------")
输出如下所示:
文件路径前加r,试试