Python用open開啟檔案,輸入完整路徑可以開啟,直接檔名不能開啟,為什麼

2021-04-12 18:04:31 字數 4077 閱讀 4635

1樓:巴巴吖葩琦

open函式中bai

的檔名預設是du尋找當前目錄下的這個zhi檔案如果dao當前目錄下沒有就會報錯。建專議在日常使用屬中寫上絕對路徑(完整路徑)

# -*- encoding:utf-8 -*-with open('a.txt') as f:

res = f.readline()

print(res)

當前目錄下沒有a.txt 下面是報錯

我的d盤下有a.txt這個檔案,並且寫了絕對路徑# -*- encoding:utf-8 -*-with open('d:\\a.txt') as f:

res = f.readline()

print(res)

with open() as f就相當於 f = open()第一種方式會在程式結束後自動**記憶體。可以不用寫f.close()。其餘用法一樣

2樓:匿名使用者

就好象中國也有很多

抄地方有

bai重名的,沒有完整路徑僅du靠名字沒法定位。

一般如果zhi沒有完整路徑的話,會dao在當前目錄下找,沒有就失敗。 當然,如果直接在命令列下敲可執行檔案,還會在path環境變數下找,這種情況沒有完整路徑名也可以。

python open檔案,完整路徑可以開啟,直接用檔名則不能,是為什麼

3樓:匿名使用者

首先,這個路徑分絕對路徑和相對路徑

絕對路徑就是寫詳細的路徑

相對路徑就是相對於程式的檔案路徑

如果你的檔案和程式在同一路徑下則可以直接用檔名

4樓:匿名使用者

嗯,確實是這個問題,os.chdir()到當前工作目錄就可以了。

還有一點疑問就是我在剛在knn的那個資料夾,建立另一個指令碼,用這樣的方式,在執行指令碼的時候輸入資料檔名,是可以開啟的:

from sys import argv

script, filename = argv

txt = open(filename)

print txt.read()

然後再cmd中執行,是可以呼叫的。

好吧,寫著寫著我自己明白了。因為後面說的這個是在cmd中執行的,而cmd是在當前目錄中開啟的,也就是每次輸入命令前都有個:

e:\workfolder\machine learning\python\ml inaction>

即:每條指令都是在當前工作目錄下執行的!這其實也就是您說的os.chdir("workingdir")了!

5樓:匿名使用者

直接檔名python只在本地路徑裡找那個檔案,當然找不到

所以需要用完整路徑

你也可以輸出一下當前路徑對比一下

python的open開啟的是**的檔案啊

6樓:匿名使用者

如果你想以檔名開啟的話,要把這個檔案放在你python檔案同一資料夾內;如果不在同一資料夾內,則需要使用全路徑,如:r"c:\data\text.txt"

7樓:隨風飄揚

因為路復

徑的問題,就像你說的他並制不知道你開啟的檔案路徑。你可以在檔名前面加上絕對路徑。建議學習一下os模組。

你可以先

import os

os.getcwd()看看當前路徑是什麼,如果不是想要的路徑就用os.chdir(r'路徑名')轉移到需要的路徑下,就可以直接輸入檔名稱開啟了。

8樓:匿名使用者

編譯器位置和執行檔案位置,檔名的位置你可以寫絕對路徑就可以了。

9樓:匿名使用者

檔名,是可以指定路徑的,比方d:\1.txt

10樓:匿名使用者

提示的是什麼錯誤抄啊。你貼過來看bai看。

open('檔名','r')用這個方du法開啟,通常是按文字格式打zhi開。

如果是開啟錯誤:

dao可能是語法錯誤,少了引號,也可能是你的反斜槓沒有加轉義的\,也可能是你因為你沒有指定好路徑。它預設只能開啟當前目錄。

如果你啟動了python,可以用這句話知道你的當前目錄import os

print os.path.abspath(".")當然還有其它的辦法知道當前目錄。getcwd似乎是這樣有幾個。

11樓:孟羽然

如果copy檔名是相對路徑名,則是以當前目bai錄為基點的路徑du名。

假設zhi當前路徑為/home/foo,則open('file.txt', 'rb')開啟dao的是/home/foo/file.txt。

當前路徑預設是你啟動程式的目錄,例如:

$ pwd

/home/foo

$ ../goo/bin/look.py

此時,「當前路徑」應該是/home/foo,而不是/home/goo/bin

在程式中,可以通過os.getcwd()獲得當前路徑,也可以利用os.chdir()來改變當前路徑。

最後,如果你讀某檔案沒有訪問許可權,open也是會報錯的(錯誤資訊會詳細提示原因)。

12樓:匿名使用者

其實你可以直接把檔名改為檔案路徑:

file = open (r"d:\file.txt","r+")

注意檔案路徑前的『r』不要忘掉,除非你用 ' / ' 代替 ' \ ' 。

在python裡open無法開啟別目錄的檔案

13樓:匿名使用者

在目錄名的字串前加一個r,或者是將斜框前面加上一個轉義符,變成雙斜槓。

python使用open函式開啟檔案的常用模式

14樓:匿名使用者

要以讀檔案的模式開啟一個檔案物件,使用python內建的open()函式,傳入檔名和標示符:

f = open('/users/michael/test.txt', 'r')

標示符'r'表示讀,這樣,我們就成功地開啟了一個檔案。

如果檔案不存在,open()函式就會丟擲一個ioerror的錯誤,並且給出錯誤碼和詳細的資訊告訴你檔案不存在:

如果檔案開啟成功,接下來,呼叫read()方法可以一次讀取檔案的全部內容,python把內容讀到記憶體,用一個str物件表示:

最後一步是呼叫close()方法關閉檔案。檔案使用完畢後必須關閉,因為檔案物件會佔用作業系統的資源,並且作業系統同一時間能開啟的檔案數量也是有限的:

由於檔案讀寫時都有可能產生ioerror,一旦出錯,後面的f.close()就不會呼叫。所以,為了保證無論是否出錯都能正確地關閉檔案,我們可以使用try ...

finally來實現:

但是每次都這麼寫實在太繁瑣,所以,python引入了with語句來自動幫我們呼叫close()方法:

這和前面的try ... finally是一樣的,但是**更佳簡潔,並且不必呼叫f.close()方法。

呼叫read()會一次性讀取檔案的全部內容,如果檔案有10g,記憶體就爆了,所以,要保險起見,可以反覆呼叫read(size)方法,每次最多讀取size個位元組的內容。另外,呼叫readline()可以每次讀取一行內容,呼叫readlines()一次讀取所有內容並按行返回list。因此,要根據需要決定怎麼呼叫。

如果檔案很小,read()一次性讀取最方便;如果不能確定檔案大小,反覆呼叫read(size)比較保險;如果是配置檔案,呼叫readlines()最方便;

python使用open命令開啟檔案失敗

15樓:匿名使用者

確認下bai你的1.txt 到底在哪兒?

duwindows環境下 是用反斜

zhi槓 \

open('c:\\xx1\\xx2\\x.txt')open(r'c:\xx1\xx2\x.txt')你的第四次語法是

dao沒問題內的,報的是檔案不存在

如果不指容定目錄

open('1.txt') 會到執行這條語句的當前目錄下找你的1.txt 很有可能在c:\users\chenl 下,,不知道我猜的對不

python用tkinter模組怎麼開啟檔案

tkinter是標準的python gui庫。python與tkinter的結合提供了一個快速和容易的方法來建立gui應用程式,tkinter的提供了一個強大的物件導向的介面tk的gui工具包。python 開啟檔案可以用open命令,例如 電子書txt文字 f open e test.txt en...

如何open 有資料的esds檔案

有關於excel表裡資料分析方法的 或者其它格式的資料嗎?比如像做資料透視這樣的。只是簡單的做個透視表,直接看幫助啊,裡頭例子舉得挺好的。excelhome,你去這個論壇吧,很好的。excel vba 執行一個巨集,可以開啟對話方塊選擇檔案,並將選擇的工作簿裡的資料資料匯入貼上 既然僅轉換格式,對內...

vsd檔案用什麼軟體開啟,VSD檔案用什麼軟體開啟?

visio可以。就和word的doc檔案類似,要開啟vsd檔案的話,裝個visio就可以了,visio屬於office系列,但是一般專 安裝的office套件屬裡面不包含visio,需要單獨安裝。之後inter explorer會開啟,visio viewer 在瀏覽器視窗中顯示該繪圖。使用工具欄按...