我想给我的程序一个文件路径,但如果有/包含它就不喜欢它。我怎样才能说服python我的路径只有一个参数
01-28 06:15:29.817 5620-5739/com.judemark.triber.driverapp E/MPlugin: Unsupported class: com.mediatek.common.telephony.IOnlyOwnerSimSupport
01-28 06:15:30.126 5620-5620/com.judemark.triber.driverapp E/Minikin: addFont failed to create font /system/fonts/Padauk.ttf
01-28 06:15:30.248 5620-5620/com.judemark.triber.driverapp E/Minikin: addFont failed to create font /system/fonts/NanumGothic.ttf
01-28 06:15:30.251 5620-5620/com.judemark.triber.driverapp E/Minikin: addFont failed to create font /system/fonts/DroidSansFallback.ttf
01-28 06:15:30.251 5620-5620/com.judemark.triber.driverapp E/Minikin: addFont failed to create font /system/fonts/MTLmr3m.ttf
01-28 06:15:30.597 5620-5620/com.judemark.triber.driverapp E/MultiWindowProxy: getServiceInstance failed!
01-28 06:15:31.138 5620-5798/com.judemark.triber.driverapp E/GED: Failed to get GED Log Buf, err(0)
01-28 06:15:31.616 5620-5800/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f765eb680 cert_verify_callback x509_store_ctx=0x7f618579f0 arg=0x0
01-28 06:15:31.616 5620-5800/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f765eb680 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
01-28 06:16:01.626 5620-5620/com.judemark.triber.driverapp E/MultiWindowProxy: getServiceInstance failed!
01-28 06:16:02.729 5620-7093/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f65a74b00 cert_verify_callback x509_store_ctx=0x7f49332220 arg=0x0
01-28 06:16:02.729 5620-7093/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f65a74b00 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_ECDSA
01-28 06:16:04.864 5620-7095/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f5e659d80 cert_verify_callback x509_store_ctx=0x7f49128260 arg=0x0
01-28 06:16:04.865 5620-7095/com.judemark.triber.driverapp E/NativeCrypto: ssl=0x7f5e659d80 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_ECDSA
01-28 06:16:07.272 5620-5620/com.judemark.triber.driverapp E/UncaughtException: com.google.maps.api.android.lib6.common.apiexception.b: Failed to decode image. The provided image must be a Bitmap.
at com.google.maps.api.android.lib6.impl.m.a(:com.google.android.gms.DynamiteModulesB@11975448:12)
at com.google.maps.api.android.lib6.impl.n.a(:com.google.android.gms.DynamiteModulesB@11975448:7)
at com.google.maps.api.android.lib6.impl.cz.<init>(:com.google.android.gms.DynamiteModulesB@11975448:25)
at com.google.maps.api.android.lib6.impl.ba.a(:com.google.android.gms.DynamiteModulesB@11975448:487)
at com.google.android.gms.maps.internal.k.onTransact(:com.google.android.gms.DynamiteModulesB@11975448:94)
at android.os.Binder.transact(Binder.java:392)
at com.google.android.gms.internal.zzeu.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzg.addMarker(Unknown Source)
at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
at com.judemark.triber.driverapp.Welcome$2.onComplete(Welcome.java:213)
at com.firebase.geofire.GeoFire$2.onComplete(GeoFire.java:175)
at com.google.android.gms.internal.zzeek.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5769)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
01-28 06:16:07.508 5620-5620/com.judemark.triber.driverapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.judemark.triber.driverapp, PID: 5620
com.google.maps.api.android.lib6.common.apiexception.b: Failed to decode image. The provided image must be a Bitmap.
at com.google.maps.api.android.lib6.impl.m.a(:com.google.android.gms.DynamiteModulesB@11975448:12)
at com.google.maps.api.android.lib6.impl.n.a(:com.google.android.gms.DynamiteModulesB@11975448:7)
at com.google.maps.api.android.lib6.impl.cz.<init>(:com.google.android.gms.DynamiteModulesB@11975448:25)
at com.google.maps.api.android.lib6.impl.ba.a(:com.google.android.gms.DynamiteModulesB@11975448:487)
at com.google.android.gms.maps.internal.k.onTransact(:com.google.android.gms.DynamiteModulesB@11975448:94)
at android.os.Binder.transact(Binder.java:392)
at com.google.android.gms.internal.zzeu.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzg.addMarker(Unknown Source)
at com.google.android.gms.maps.GoogleMap.addMarker(Unknown Source)
at com.judemark.triber.driverapp.Welcome$2.onComplete(Welcome.java:213)
at com.firebase.geofire.GeoFire$2.onComplete(GeoFire.java:175)
at com.google.android.gms.internal.zzeek.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5769)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
01-28 06:16:08.644 5620-7155/? E/NativeCrypto: ssl=0x7f457f5200 cert_verify_callback x509_store_ctx=0x7f35dbe350 arg=0x0
01-28 06:16:08.644 5620-7155/? E/NativeCrypto: ssl=0x7f457f5200 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_ECDSA
没有/
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser(description='Change the option prefix characters',prefix_chars='-+/',)
parser.add_argument('-f', action='store', dest='PathtoFile',help='PathtoFile')
print parser.parse_args()
任何结果都会产生一个参数
argsparse.py -f banana -> Namespace(PathtoFile='banana')
- &GT;
argsparse.py -f /home/user/banana
argsparse.py -f '/home/user/banana'
argsparse.py -f '//home//user//banana'
argsparse.py -f "/home/user/banana"
argsparse.py -f "//home//user//banana"
更新:谢谢匹配我忘了添加/作为前缀 改变
usage: argsparse.py [-h] [-f PATHTOFILE]
argsparse.py: error: argument -f: expected one argument
到
parser = argparse.ArgumentParser(description='Change the option prefix characters',prefix_chars='-+/',)
答案 0 :(得分:0)
问题是您正在使用prefix_chars='-+/'
- 这告诉argparse这些字符是标记命令标记的内容。
因此,您的代码看到/
等同于-
并将其读取为您输入的内容:
argsparse.py -f -home/user/banana
这意味着-f
没有给出论据。删除prefix_chars
,它应该可以正常工作。