48

私はPythonを使用してファイル操作に取り組んでいます。

私は次のようなファイルパスを持っています:

filepath = "E:/ABC/SEM 2/testfiles/all.txt"

Pythonを使用してファイルを開くと、次のように表示されます。

IOError: No such file:

ただし、ファイルはドライブに存在します。
スペースが入っているため、ウィンドウが「SEM2」を正しく取得できないことが原因である可能性があります。
ウィンドウパスのパスでこのような空白をどのように処理できますか?

4

5 に答える 5

47
path = r"C:\Users\mememe\Google Drive\Programs\Python\file.csv"

r "string"でパスを閉じることも、この問題を非常にうまく解決しました。

于 2014-09-03T17:19:05.767 に答える
21

ファイルを開くために「シェル」を使用していないため、パス内の空白に問題はありません。これは、要点を証明するための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>
于 2013-02-13T11:23:12.290 に答える
20

ファイルパス変数に二重引用符を入れてみてください

"\"E:/ABC/SEM 2/testfiles/all.txt\""

ファイルの権限を確認するか、いずれの場合もフォルダの名前を変更してスペースを削除することを検討してください

于 2013-02-13T11:17:02.227 に答える
1

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
于 2021-04-13T04:21:41.000 に答える
0

(WINDOWS-AWSソリューション)ファイルとパスを3重引用符で囲む
ことにより、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)
于 2020-11-07T20:52:40.077 に答える