Python 读取大文件时,脚本将以PermissionError[错误13]终止
是的,我知道这个或类似的问题已经发布到这个论坛上,但到目前为止,没有一个答案足以解决我的问题: 这里我有以下代码:Python 读取大文件时,脚本将以PermissionError[错误13]终止,python,Python,是的,我知道这个或类似的问题已经发布到这个论坛上,但到目前为止,没有一个答案足以解决我的问题: 这里我有以下代码: with open(filename,'r',buffering=2000000) as f: f.readline() # takes header away for i, l in enumerate(f): # count the number of lines print('Counting {}'.form
with open(filename,'r',buffering=2000000) as f:
f.readline() # takes header away
for i, l in enumerate(f): # count the number of lines
print('Counting {}'.format(i),end='\r')
pass
发生的情况是,该文件是一个23GB的csv文件。我得到以下错误:
File "programs\readbigfile.py", line 33, in <module>
for i, l in enumerate(f): # count the number of lines
PermissionError: [Errno 13] Permission denied
文件“programs\readbigfile.py”,第33行,在
对于枚举(f)中的i,l:#计算行数
PermissionError:[Errno 13]权限被拒绝
错误总是发生在行号1374200
处。我用一个文本编辑器检查了文件,在那一行没有什么异常。这发生在我身上,使用的是相同的文件,但版本较小(少了几GB)。然后它突然起作用了。
任何其他进程都没有使用该文件。
关于这个错误为什么发生在文件中间?
警察局。我正在一台装有Intel i5-6500 CPU/16Gb内存和NVIDIA GeForce GTX 750 Ti卡的计算机上运行此程序。
系统是Windows10Python 3.7.6 x64/Anaconda
该文件位于本地磁盘上,不涉及网络。无论是什么,我认为您的代码都可以 我的想法是:
- 你需要这个缓冲吗?你有没有试着把它完全去掉
- 我看到你在Windows上运行。我不知道这是否重要,但许多奇怪的问题发生在Windows上
- 如果您试图在网络中的磁盘(samba等)上访问它,可能它没有完全同步
- 您确定在此期间没有其他人尝试访问此文件吗?卓越
- 您是否尝试使用
读取此文件?我不认为这会有帮助,只是想知道csv.reader
- 您可以
并在出现错误时检查try/except
或os.stat
(如果您有权限)os.access
- 也许是打印的问题,听起来像是一个大文件。你试过不打印吗?如果i%1000==0:print(…)
try/except:print…
:)