python中处理读取可能不存在的文件的最佳方法是什么?
目前我有以下内容:
try:
with open(filename, "r") as f:
return f.read()
except IOError:
return False
Run Code Online (Sandbox Code Playgroud)
这是最好的方法,还是在任何级别上都是错误的?
我想我最担心的是:
如果文件存在,我想将一些文本附加到文件中,或者创建文件并向其附加一些附加文本(如果它是刚刚创建的)。我知道我可以使用open("filename","a")追加/创建,因为如果文件不存在,这行代码将创建文件。但是,我如何知道该文件是否存在或刚刚创建?
最终我想实现这一目标:
with(open("filename","a")) as f:
if filename existed before open
# Append text
else if filename was just created
# Append some headers
# Append text
Run Code Online (Sandbox Code Playgroud)
我可以通过首先检查文件是否存在 (os.path.isfile(filename)) 然后采取相应措施来实现这一点,但我正在寻找一种更优雅的方式。
我查看了 inetrnet,但没有发现任何相关内容,所以我在这里问 - 是否可以使用 python 创建文件的快捷方式并将其放入我选择的特定目录中?例如,我在“C:”中有一个名为“EXAMPLE”的文件夹。我想自动创建谷歌浏览器的快捷方式并将其放在这个文件夹中。是否可以使用 python 来做到这一点(而不仅仅是我自己拖过去)?谢谢
我用 C 编写了一个简单的函数,它可以将给定的数字提高到给定的幂。当我在 C 中调用它时,该函数返回正确的值,但是当我在 Python 中调用它时,它返回一个不同的、不正确的值。
我使用以下命令创建了共享文件:
$ gcc -fPIC -shared -o test.so test.c
我尝试了 C 函数的不同配置,其中一些返回预期值,而另一些不返回。例如,当我的函数使用return x*x没有for循环的简单正方形时,它在 Python 中返回了正确的值。
我希望最终能够在 python 中调用一个 C 函数,该函数将返回一个二维 C 数组。
#include <stdio.h>
float power(float x, int exponent)
{
float val = x;
for(int i=1; i<exponent; i++){
val = val*x;
}
return val;
}
Run Code Online (Sandbox Code Playgroud)
#include <stdio.h>
float power(float x, int exponent)
{
float val = x;
for(int i=1; i<exponent; i++){
val = val*x;
}
return val;
}
Run Code Online (Sandbox Code Playgroud)
我在 C …
如果我想安全地尝试在D中打开文件,则是首选方法
我猜测第二种替代结果会产生更多IO并且更复杂吗?
阅读这个问题的答案:如何使用Python检查文件是否存在?,答案陈述:
如果您检查的原因是这样,您可以做类似的事情
if file_exists: open_it(),那么使用try围绕尝试打开它更安全.在检查和尝试打开文件时检查然后打开文件被删除或移动的风险或介于两者之间的风险.如果您不打算立即打开文件,则可以使用
os.path.isfile
我无法理解为什么检查(通过os.path)然后打开被移动或删除的文件的风险.
这到底是什么意思?
我想检查给定路径上是否存在图像。代码片段如下:
if the image exists:
#business logic
else:
#set default logo
Run Code Online (Sandbox Code Playgroud) 我需要在 python 中创建一个跳过函数,如果文件已经存在,它会跳过我的下载代码。
该函数应该如何工作:(如果文件存在,则无需运行此代码,只需跳到下一个代码。如果不存在,则运行此代码,然后运行下一个代码)
Filecheck = os.path.join(OUTPUT_FOLDER,"test"+version+"exe")
print Filecheck
if not os.path.exists(Filecheck):
base_url = urlJoin(LINK, + version + "_multi.exe")
print base_url
filename2 = "%s_%s_.exe" % (software.capitalize(),version)
original_filename = os.path.join(OUTPUT_FOLDER, filename2)
if writeFile(original_filename, httpRequestFile(base_url), "wb") and os.path.exists(original_filename):
print "Download done"
Run Code Online (Sandbox Code Playgroud) 我得到一个类型错误,我的类在其函数dl()中使用self
import urllib
import httplib
import os.path
###SAI22 Library###
def exists(site):
conn = httplib.HTTPConnection(site)
conn.request("HEAD",site)
response = conn.getresponse()
conn.close()
return response.status == 200
class sai_download:
def dl(self,_dir,_url,pck):
if pck == True:
if exists(_url) == True:
urllib.urlretrieve(_url,_dir)
if os.path.isfile(_dir) == True:
print "Download successful"
return True
else:
print "Download failed"
return False
else:
print "Url isnt valid"
return False
elif pck == False:
if exists(_url) == True:
urllib.urlretrieve(_url,_dir)
return True
if os.path.isfile(_dir) == True:
return True
else:
return False
else:
return …Run Code Online (Sandbox Code Playgroud) 我想提供输入
%>Python_script_name listed_files
Run Code Online (Sandbox Code Playgroud)
如何检查是否作为文件存在或者它是某个输入参数。
<listed file can also be in path /govr/rest/listed_files >
Run Code Online (Sandbox Code Playgroud)
请分享小脚本,通过它我可以检查命令行参数是有效文件还是要处理的简单变量。
总而言之,我需要处理我的脚本,以便在命令行中使用 或 单个参数。
请帮忙。
提前致谢。