我正在尝试使用python脚本自动执行任务,但是遇到了这种奇怪的现象。我在SO中寻找相同的内容,但略有不同,因此我在这里使用简化示例进行询问。
我下面有一个名为test1.txt的文件。
"https://papers.nips.cc/paper/7286-efficient-algorithms-for-non-convex-isotonic-regression-through-submodular-optimization" ## Efficient Algorithms for Non-convex Isotonic Regression through Submodular Optimization
"https://papers.nips.cc/paper/7287-structure-aware-convolutional-neural-networks" ## Structure-Aware Convolutional Neural Networks
"https://papers.nips.cc/paper/7288-kalman-normalization-normalizing-internal-representations-across-network-layers" ## Kalman Normalization: Normalizing Internal Representations Across Network Layers
"https://papers.nips.cc/paper/7289-hogwild-gibbs-can-be-panaccurate" ## HOGWILD!-Gibbs can be PanAccurate
和python脚本quest.py
import re
with open('test1.txt') as f:
for line in f:
#print line
link = re.sub(" ##.*","",line)
print link
link1 = link.strip('\"')
print link1
当我用
python quest.py
执行它时,我得到"https://papers.nips.cc/paper/7286-efficient-algorithms-for-non-convex-isotonic-regression-through-submodular-optimization"
https://papers.nips.cc/paper/7286-efficient-algorithms-for-non-convex-isotonic-regression-through-submodular-optimization"
"https://papers.nips.cc/paper/7287-structure-aware-convolutional-neural-networks"
https://papers.nips.cc/paper/7287-structure-aware-convolutional-neural-networks"
"https://papers.nips.cc/paper/7288-kalman-normalization-normalizing-internal-representations-across-network-layers"
https://papers.nips.cc/paper/7288-kalman-normalization-normalizing-internal-representations-across-network-layers"
"https://papers.nips.cc/paper/7289-hogwild-gibbs-can-be-panaccurate"
https://papers.nips.cc/paper/7289-hogwild-gibbs-can-be-panaccurate"
我想第一次使用周围的双引号(= link)打印链接,然后不使用双引号(= link1)打印链接。但是,为什么我会看到link1的结尾双引号?
最佳答案
Python的str.strip([chars])
将删除开头和结尾的chars
,但是一旦到达chars
中没有的字符,它将停止。
看起来您的link
以换行符结束,并且剥离在到达双引号之前就停止了。 (提示:print
仅添加一个换行符,并且在输出中有两个换行符。)
删除双引号和换行符:
link1 = link.strip('"\n')
另外,值得一提的是(如@glibdud注释中所述),链接以换行符结尾的原因是因为文件迭代器不会剥离换行符,
sub
表达式也不会(因为.
不包括换行符) ;要添加它,请添加re.DOTALL
regex标志)。关于python - python字符串条不适用于结尾的双引号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55922888/