Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从变量中删除字符串的一部分?_Python_Python 3.x - Fatal编程技术网

Python 如何从变量中删除字符串的一部分?

Python 如何从变量中删除字符串的一部分?,python,python-3.x,Python,Python 3.x,我有以下变量: input\u file='gs://tinydancer/test\u files/GoogleSheetsandPython\u 1min.flac' 我想使用input_file变量的GoogleSheetsandPython_1min部分来命名.txt文件。 这将在稍后的脚本中创建 我还想在文件名的末尾附加.txt 以下是我目前如何做到这一点的: text\u file=open(“GoogleSheetsandPython\u 1min.txt”,“a”) 通过简单的硬

我有以下变量:

input\u file='gs://tinydancer/test\u files/GoogleSheetsandPython\u 1min.flac'

我想使用input_file变量的
GoogleSheetsandPython_1min
部分来命名.txt文件。 这将在稍后的脚本中创建

我还想在文件名的末尾附加.txt

以下是我目前如何做到这一点的:

text\u file=open(“GoogleSheetsandPython\u 1min.txt”,“a”)


通过简单的硬编码,我想让它自动化。因此,一旦设置了输入文件,您就可以使用它相应地更改output.txt文件名。我对此做了一些研究,但到目前为止还没有找到好的方法

您可以沿着
/
分割字符串,获取最后一项,然后像下面这样附加“.txt”:

>>> input_file.split('/')[-1] + '.txt'
'GoogleSheetsandPython_1min.flac.txt'
如果我误解了,您想用
.txt
替换
.flac
,您只需在
上进行另一次拆分,然后附加
.txt

>>> input_file.split('/')[-1].split('.')[0] + '.txt'
'GoogleSheetsandPython_1min.txt'
正则表达式解决方案:

import re

>>> re.search('[^/][\\\.A-z0-9]*$', input_file).group()
'GoogleSheetsandPython_1min.flac'

然后,您可以在
上拆分以删除文件扩展名

使用
os.path

import os

input_file = 'gs://tinydancer/test_files/GoogleSheetsandPython_1min.flac'
input_file = os.path.splitext(os.path.basename(input_file))[0] + '.txt'

您可以使用
os.path.basename

import os

input_file = 'gs://tinydancer/test_files/GoogleSheetsandPython_1min.flac'
new_file = os.path.basename(input_file).replace("flac", "txt")
text_file = open(new_file, "a")

您可以使用
.rsplit(“/”,1)[1]
来代替它-效率更高一些。是的,这就是我在
文本文件
变量中寻找的,关于如何删除该
输入文件
前面的建议?这:
gs://tinydancer/test\u files/
我在想一些类似于“input\u file.remove[?]的东西,但我不确定使用什么索引,因为“技术上”它是一个单词。还是真的?我想我不明白。这不是我刚才给你看的吗?或者你可以使用正则表达式来获取文件名
re.search('[^/][\.A-z0-9]*$',input\u file).group()
输出:
'GoogleSheetsandPython\u 1min.flac'
@EliC字符串是不可变的试试这个