带有复杂参数的python函数

2024-04-20 04:04:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

有人能帮我把filefullpath传给save_geometry吗?如果save_geometry的参数中没有r,那就很容易了。但我不知道如何处理这个问题。你知道吗


Tags: 函数代码test路径txt参数文件名save
3条回答

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

例如

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

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

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

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

之所以使用它,是因为“\”路径分隔符也用于换行符等。在输入参数时可以跳过它;save\u geometry(filefullpath)应该可以实现您所期望的功能。你知道吗

注意,组合路径的标准方法是^{}

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

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

C:
ew folder

因为\n是一条新线。你知道吗

相关问题 更多 >