具有复杂参数的python函数

时间:2014-12-31 20:00:35

标签: python function

我在python代码中有一个函数,其参数如下:

save_geometry(r"""C:\Users\User0\Documents\test.txt """)

我想修改参数,并能够使用不同的文件名保存到不同的路径:

filename = "geometries.txt "
filepath = "D:/AllData/"
filefullpath = filepath + filename

有人可以帮助我将filefullpath传递给save_geometry吗?如果r的参数中没有save_geometry,那就很容易了。但我不知道如何处理这个r

3 个答案:

答案 0 :(得分:5)

r“”构造只是告诉Python,字符串中的任何内容都应该被解释为原始数据。

"qw\n" == 'qw\n'
r"qw\n" == 'qw\\n'.

使用它是因为“\”路径分隔符也用于换行符等。你可以在参与辩论时跳过它; save_geometry(filefullpath)应该做你期望的。

答案 1 :(得分:0)

请注意,将路径放在一起的规范方法是os.path.join

path = os.path.join("D:\\", "AllData", "geometries.txt")

User3757614的答案解决了您对原始字符串表示法的关注,但简洁地说,所有r""表示法都告诉Python,以下字符串不应将\视为转义字符,而是作为一个字面反斜杠。这很重要,因为"C:\new folder"实际上是

C:
ew folder

由于\n是换行符。

答案 2 :(得分:-2)

您可以使用os模块将字符串拆分为文件夹路径和文件名。

e.g。

import os
pathname = os.path.dirname('C:\Users\User0\Documents\test.txt')  #C:\Users\User0\Documents
filename = os.path.basename('C:\Users\User0\Documents\test.txt')  #test.txt

虽然您需要修改路径字符串,因为您的\将被解释并且换行字节