簡體   English   中英

用Python的fileinput找不到文件

[英]File not found with Python's fileinput

給出以下代碼:

# Edit build number in test report
print(path)  # TODO remove
html_report = fileinput.input(path, inplace=True)
for line in html_report:
    print(line.replace('$BUILD_NUMBER',
                       args.number).rstrip())
html_report.close()

我得到以下輸出:

/home/jenkins/workspace/reports/report201610261053.html
Traceback (most recent call last):
  File "report_generator.py", line 58, in <module>
    for line in html_report:
  File "/usr/lib/python2.7/fileinput.py", line 252, in next
    line = self.readline()
  File "/usr/lib/python2.7/fileinput.py", line 321, in readline
    os.rename(self._filename, self._backupfilename)
OSError: [Errno 2] No such file or directory

如果我只使用命令:

gedit /home/jenkins/workspace/reports/report201610261053.html

我可以檢查該文件是否存在。 實際上,如果不是這樣,我希望在fileinput.input()行而不是在行循環中會引發此錯誤。

有什么問題的主意嗎?

您的“路徑”值是多少? 我認為您應該嘗試使用絕對路徑

您還可以檢查用戶的文件權限。

在您顯示的代碼中,我看不到任何錯誤。

我可以檢查該文件是否存在。 實際上,如果不是這樣,我希望在fileinput.input()行而不是在行循環中會引發此錯誤。

僅當嘗試打開文件並且在for循環中發生時,才報告該錯誤。

與手動驗證文件是否存在相比,您的代碼是否可能在其他用戶下運行,並且在該路徑上看不到該文件?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM