相关疑难解决方法(0)

从Unicode格式的字符串中删除标点符号

我有一个函数,从字符串列表中删除标点符号:

def strip_punctuation(input):
    x = 0
    for word in input:
        input[x] = re.sub(r'[^A-Za-z0-9 ]', "", input[x])
        x += 1
    return input
Run Code Online (Sandbox Code Playgroud)

我最近修改了我的脚本以使用Unicode字符串,所以我可以处理其他非西方字符.当遇到这些特殊字符并且只返回空的Unicode字符串时,此函数会中断.如何从Unicode格式的字符串中可靠地删除标点符号?

python unicode

40
推荐指数
4
解决办法
2万
查看次数

在这个python代码中生成"TypeError字符映射必须返回整数..."的是什么?

拜托,有人可以用下面的代码帮我吗?当我运行它时,日志说:

return method(*args, **kwargs)
  File "C:\Users\CG\Documents\udacity\rot13serendipo\main.py", line 51, in post
    text = rot13(text)
  File "C:\Users\CG\Documents\udacity\rot13serendipo\main.py", line 43, in rot13
    return st.translate(tab)
TypeError: character mapping must return integer, None or unicode
   INFO     2012-04-28 20:02:26,862 dev_appserver.py:2891] "POST / HTTP/1.1" 500 -
Run Code Online (Sandbox Code Playgroud)

我知道错误必须在rot13()中.但是,当我在IDE中运行此过程时,它正常工作.

这是我的代码:

import webapp2

form= """
  <html>
  <head>
    <title>Unit 2 Rot 13</title>
  </head>

  <body>
    <h2>Enter some text to ROT13:</h2>
    <form method="post">
      <textarea name="text"
                style="height: 100px; width: 400px;"></textarea>
      <br>
      <input type="submit">
    </form>
  </body>

  </html> """

def rot13(st):
    import string
    tab1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine typeerror

21
推荐指数
1
解决办法
2万
查看次数

Python的string.maketrans在家工作但在Google App Engine上失败

我在Google AppEngine(Python SDK)中有这个代码:

from string import maketrans 

intab =  u"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ".encode('latin1') 
outtab = u"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn".encode('latin1') 
logging.info(len(intab))
logging.info(len(outtab))
trantab = maketrans(intab, outtab)
Run Code Online (Sandbox Code Playgroud)

当我在交互式控制台中运行代码时我没有问题,但是当我在GAE中尝试它时,我收到以下错误:

引发ValueError,"maketrans参数必须具有相同的长度"ValueError:maketrans参数必须具有相同的长度INFO 2009-12-03 20:04:02,904 dev_appserver.py:3038]"POST/backendsavenew HTTP/1.1"500 - INFO 2009-12 -03 20:08:37,649 admin.py:112] 106 INFO 2009-12-03 20:08:37,651 admin.py:113] 53 ERROR 2009-12-03 20:08:37,653 init .py:388] maketrans参数必须具有相同的长度

我无法弄清楚为什么它的尺寸增加了一倍.带代码的python文件保存为UTF-8.

在此先感谢您的帮助.

python google-app-engine translation internationalization

5
推荐指数
1
解决办法
2905
查看次数

translate()在python错误中只接受一个参数(给定2个)

import os
import re

def rename_files():
    # get the files from dir
    file_list=os.listdir(r"C:\OOP\prank")
    print(file_list)
    saved_path=os.getcwd()
    print("current working directory"+saved_path)
    os.chdir(r"C:\OOP\prank")
    #rename the files
    for file_name in file_list:
        print("old name-"+file_name)
        #print("new name-"+file_name.strip("0123456789"))
        os.rename(file_name,file_name.translate(None,"0123456789"))
        os.chdir(saved_path)

rename_files()
Run Code Online (Sandbox Code Playgroud)

由于翻译行显示错误...帮助我下一步做什么..我正在使用翻译从文件名中删除数字.

Traceback (most recent call last):
    File "C:\Users\vikash\AppData\Local\Programs\Python\Python35-  32\pythonprogram\secretName.py", line 17, in <module>
rename_files()
      File "C:\Users\vikash\AppData\Local\Programs\Python\Python35-  32\pythonprogram\secretName.py", line 15, in rename_files
     os.rename(file_name,file_name.translate(None,"0123456789"))
     TypeError: translate() takes exactly one argument (2 given)
Run Code Online (Sandbox Code Playgroud)

python string file

2
推荐指数
2
解决办法
2万
查看次数