我正在使用 python 进行文件操作。
我有一个文件路径:
filepath = "E:/ABC/SEM 2/testfiles/all.txt"
当我使用 python 打开文件时,它说我:
IOError: No such file:
但是,该文件存在于驱动器上。
这可能是因为 Windows 无法正确获取“SEM 2”,因为它包含空间。
如何处理窗口路径路径中的此类空格?
path = r"C:\Users\mememe\Google Drive\Programs\Python\file.csv"
关闭 r"string" 中的路径也很好的解决了这个问题。
路径中的空格没有问题,因为您没有使用“shell”打开文件。这是一个来自 Windows 控制台的会话来证明这一点。你做错了其他事情
Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on wi
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>>
>>> os.makedirs("C:/ABC/SEM 2/testfiles")
>>> open("C:/ABC/SEM 2/testfiles/all.txt","w")
<open file 'C:/ABC/SEM 2/testfiles/all.txt', mode 'w' at 0x0000000001D95420>
>>> exit()
C:\Users\Gnibbler>dir "C:\ABC\SEM 2\testfiles"
Volume in drive C has no label.
Volume Serial Number is 46A0-BB64
Directory of c:\ABC\SEM 2\testfiles
13/02/2013 10:20 PM <DIR> .
13/02/2013 10:20 PM <DIR> ..
13/02/2013 10:20 PM 0 all.txt
1 File(s) 0 bytes
2 Dir(s) 78,929,309,696 bytes free
C:\Users\Gnibbler>
尝试在文件路径变量中添加双引号
"\"E:/ABC/SEM 2/testfiles/all.txt\""
检查文件的权限或在任何情况下考虑重命名文件夹以删除空间
Mac上的一个黑客:
path = '/Volumes/Public/ABY/Documents/Musiq/slumdog millonaire/Mausam and Escape.mp3'
nPath = path.replace(' ', '\\ ')
print(nPath)
输出:
/Volumes/Public/ABY/Documents/Musiq/slumdog\ millonaire/Mausam\ and\ Escape.mp3
(WINDOWS - AWS 解决方案)通过在文件和路径周围加上三引号来
解决 windows问题。
好处:
1) 防止被悄悄忽略的排除。
2) 包含空格的文件/文件夹将不再出现错误。
aws_command = 'aws s3 sync """D:/""" """s3://mybucket/my folder/" --exclude """*RECYCLE.BIN/*""" --exclude """*.cab""" --exclude """System Volume Information/*""" '
r = subprocess.run(f"powershell.exe {aws_command}", shell=True, capture_output=True, text=True)